diff --git a/javadoc/assets/android-developer-core.css b/javadoc/assets/android-developer-core.css
deleted file mode 100755
index 06c5b3e..0000000
--- a/javadoc/assets/android-developer-core.css
+++ /dev/null
@@ -1,1198 +0,0 @@
-/* file: android-developer-core.css
-   author: smain
-   date: september 2008
-   info: core developer styles (developer.android.com)
-*/
-
-
-/* RESET STYLES */
-
-html,body,div,h1,h2,h3,h4,h5,h6,p,img,
-dl,dt,dd,ol,ul,li,table,caption,tbody,
-tfoot,thead,tr,th,td,form,fieldset,
-embed,object,applet {
-  margin: 0;
-  padding: 0;
-  border: 0;
-}
-
-/* BASICS */
-
-html, body {
-  overflow:hidden; /* keeps scrollbar off IE */
-  background-color:#fff;
-}
-
-body {
-  font-family:arial,sans-serif;
-  color:#000;
-  font-size:13px;
-  color:#333;
-  background-image:url(images/bg_fade.jpg);
-  background-repeat:repeat-x;
-}
-
-a, a code {
-  color:#006699;
-}
-
-a:active,
-a:active code {
-  color:#f00;
-} 
-
-a:visited,
-a:visited code {
-  color:#006699;
-}
-
-input, select,
-textarea, option, label {
-  font-family:inherit;
-  font-size:inherit;
-  padding:0;
-  margin:0;
-  vertical-align:middle;
-}
-
-option {
-  padding:0 4px;
-}
-
-p {
-  padding:0;
-  margin:0 0 1em;
-}
-
-code, pre {
-  color:#007000;
-  font-family:monospace;
-  line-height:1em;
-}
-
-var {
-  color:#007000;
-  font-style:italic;
-}
-
-pre {
-  border:1px solid #ccc;
-  background-color:#fafafa;
-  padding:10px;
-  margin:0 0 1em 1em;
-  overflow:auto;
-  line-height:inherit; /* fixes vertical scrolling in webkit */
-}
-
-h1,h2,h3,h4,h5 {
-  margin:1em 0;
-  padding:0;
-}
-
-p,ul,ol,dl,dd,dt,li {
-  line-height:1.3em;
-}
-
-ul,ol {
-  margin:0 0 .8em;
-  padding:0 0 0 2em;
-}
-
-li {
-  padding:0 0 .5em;
-}
-
-dl {
-  margin:0 0 1em 0;
-  padding:0;
-}
-
-dt {
-  margin:0;
-  padding:0;
-}
-
-dd {
-  margin:0 0 1em;
-  padding:0 0 0 2em;
-}
-
-li p {
-  margin:.5em 0 0;
-}
-
-dd p {
-  margin:1em 0 0;
-}
-
-li pre, li table, li img {
-  margin:.5em 0 0 1em;
-}
-
-dd pre,
-#jd-content dd table,
-#jd-content dd img {
-  margin:1em 0 0 1em;
-}
-
-li ul,
-li ol,
-dd ul,
-dd ol {
-  margin:0;
-  padding: 0 0 0 2em;
-}
-
-li li,
-dd li {
-  margin:0;
-  padding:.5em 0 0;
-}
-
-dl dl,
-ol dl,
-ul dl {
-  margin:0 0 1em;
-  padding:0;
-}
-
-table {
-  font-size:1em;
-  margin:0 0 1em;
-  padding:0;
-  border-collapse:collapse;
-  border-width:0;
-  empty-cells:show;
-}
-
-td,th {
-  border:1px solid #ccc;
-  padding:6px 12px;
-  text-align:left;
-  vertical-align:top;
-  background-color:inherit;
-}
-
-th {
-  background-color:#dee8f1;
-}
-
-td > p:last-child {
-  margin:0;
-}
-
-hr.blue {
-  background-color:#DDF0F2;
-  border:none;
-  height:5px;
-  margin:20px 0 10px;
-}
-
-blockquote {
-  margin: 0 0 1em 1em;
-  padding: 0 4em 0 1em;
-  border-left:2px solid #eee;
-}
-/* LAYOUT */
-
-#body-content {
-  /* "Preliminary" watermark for preview releases and interim builds.
-  background:transparent url(images/preliminary.png) repeat scroll 0 0;  */
-  margin:0;
-  position:relative;
-  width:100%;
-}
-
-#header {
-  height: 44px;
-  position:relative;
-  z-index:100;
-  min-width:675px; /* min width for the tabs, before they wrap */
-  padding:0 10px;
-  border-bottom:3px solid #94b922;
-}
-
-#headerLeft{
-  position:absolute;
-  padding: 10px 0 0;
-  left:8px;
-  bottom:3px;
-}
-
-#headerRight {
-  position:absolute;
-  right:0;
-  bottom:3px;
-  padding:0;
-  text-align:right;
-}
-
-#masthead-title {
-  font-size:28px;
-  color: #2f74ae;
-}
-
-/* Tabs in the header */
-
-#header ul {
-  list-style: none;
-  margin: 7px 0 0;
-  padding: 0;
-  height: 29px;
-}
-
-#header li {
-  float: left;
-  margin: 0px 2px 0px 0px;
-  padding:0;
-}
-
-#header li a {
-  text-decoration: none;
-  display: block;
-  background-image: url(images/bg_images_sprite.png);
-  background-position: 0 -58px;
-  background-repeat: no-repeat;
-  color: #666;
-  font-size: 13px;
-  font-weight: bold;
-  width: 94px;
-  height: 29px;
-  text-align: center;
-  margin: 0px;
-}
-
-#header li a:hover {
-  background-image: url(images/bg_images_sprite.png);
-  background-position: 0 -29px;
-  background-repeat: no-repeat;
-}
-
-#header li a span {
-  position:relative;
-  top:7px;
-}
-
-#header li a span+span {
-  display:none;
-}
-
-/* tab highlighting */
-
-.home #home-link a,
-.guide #guide-link a,
-.reference #reference-link a,
-.sdk #sdk-link a,
-.resources #resources-link a,
-.videos #videos-link a {
-  background-image: url(images/bg_images_sprite.png);
-  background-position: 0 0;
-  background-repeat: no-repeat;
-  color: #fff;
-  font-weight: bold;
-  cursor:default;
-}
-
-.home #home-link a:hover,
-.guide #guide-link a:hover,
-.reference #reference-link a:hover,
-.sdk #sdk-link a:hover,
-.resources #resources-link a:hover,
-.videos #videos-link  a:hover {
-  background-image: url(images/bg_images_sprite.png);
-  background-position: 0 0;
-}
-
-#headerLinks {
-  margin:10px 10px 0 0;
-  height:13px;
-  font-size: 11px;
-  vertical-align: top;
-}
-
-#headerLinks a {
-  color: #7FA9B5;
-}
-
-#headerLinks img {
-  vertical-align:middle;
-}
-
-#language {
-  margin:0 10px 0 4px;
-}
-
-#search {
-  margin:8px 10px 0 0;
-}
-
-/* MAIN BODY */
-
-#mainBodyFluid {
-  margin: 20px 10px;
-  color:#333;
-}
-
-#mainBodyFixed {
-  margin: 20px 10px;
-  color: #333;
-  width:930px;
-  position:relative;
-}
-
-#mainBodyFixed h3,
-#mainBodyFluid h3 {
-  color:#336666;
-  font-size:1.25em;
-  margin: 0em 0em 0em 0em;
-  padding-bottom:.5em;
-}
-
-#mainBodyFixed h2,
-#mainBodyFluid h2 {
-  color:#336666;
-  font-size:1.25em;
-  margin: 0;
-  padding-bottom:.5em;
-}
-
-#mainBodyFixed h1,
-#mainBodyFluid h1 {
-  color:#435A6E;
-  font-size:1.7em;
-  margin: 1em 0;
-}
-
-#mainBodyFixed .green,
-#mainBodyFluid .green,
-#jd-content .green {
-  color:#7BB026;
-  background-color:none;
-}
-
-#mainBodyLeft {
-  float: left;
-  width: 600px;
-  margin-right: 20px;
-  color: #333;
-  position:relative;
-}
-
-div.indent {
-  margin-left: 40px;
-  margin-right: 70px;
-}
-
-#mainBodyLeft p {
-  color: #333;
-  font-size: 13px;
-}
-
-#mainBodyLeft p.blue {
-  color: #669999;
-}
-
-#mainBodyLeft #communityDiv {
-  float: left;
-  background-image:url(images/bg_community_leftDiv.jpg);
-  background-repeat: no-repeat;
-  width: 581px;
-  height: 347px;
-  padding: 20px 0px 0px 20px;
-}
-
-#mainBodyRight {
-  float: left;
-  width: 300px;
-  color: #333;
-}
-
-#mainBodyRight p {
-  padding-right: 50px;
-  color: #333;
-}
-
-#mainBodyRight table {
-  width: 100%;
-}
-
-#mainBodyRight td {
-  border:0px solid #666;
-  padding:0px 5px;
-  text-align:left;
-}
-
-#mainBodyRight td p {
-  margin:0 0 1em 0;
-}
-
-#mainBodyRight .blueBorderBox {
-  border:5px solid #ddf0f2;
-  padding:18px 18px 18px 18px;
-  text-align:left;
-}
-
-#mainBodyFixed .seperator {
-  background-image:url(images/hr_gray_side.jpg);
-  background-repeat:no-repeat;
-  width: 100%;
-  float: left;
-  clear: both;
-}
-
-#mainBodyBottom {
-  float: left;
-  width: 100%;
-  clear:both;
-  color: #333;
-}
-
-#mainBodyBottom .seperator {
-  background-image:url(images/hr_gray_main.jpg);
-  background-repeat:no-repeat;
-  width: 100%;
-  float: left;
-  clear: both;
-}
-
-/* FOOTER */
-
-#footer {
-  float: left;
-  width:90%;
-  margin: 20px;
-  color: #aaa;
-  font-size: 11px;
-}
-
-#footer a {
-  color: #aaa;
-  font-size: 11px;
-}
-
-#footer a:hover {
-  text-decoration: underline;
-  color:#aaa;
-}
-
-#footerlinks {
-  margin-top:2px;
-}
-
-#footerlinks a,
-#footerlinks a:visited {
-  color:#006699;
-}
-
-/* SEARCH FILTER */
-
-#search_autocomplete {
-  color:#aaa;
-}
-
-#search-button {
-  display:inline;
-}
-
-#search_filtered_div {
-  position:absolute;
-  margin-top:-1px;
-  z-index:101;
-  border:1px solid #BCCDF0;
-  background-color:#fff;
-}
-
-#search_filtered {
-  min-width:100%;
-}
-#search_filtered td{
-  background-color:#fff;
-  border-bottom: 1px solid #669999;
-  line-height:1.5em;
-}
-
-#search_filtered .jd-selected {
-  background-color: #94b922;
-  cursor:pointer;
-}
-#search_filtered .jd-selected,
-#search_filtered .jd-selected a {
-  color:#fff;
-}
-
-.no-display {
-  display: none;
-}
-
-.jd-autocomplete {
-  font-family: Arial, sans-serif;
-  padding-left: 6px;
-  padding-right: 6px;
-  padding-top: 1px;
-  padding-bottom: 1px;
-  font-size: 0.81em;
-  border: none;
-  margin: 0;
-  line-height: 1.05em;
-}
-
-.show-row {
-  display: table-row;
-}
-.hide-row {
-  display: hidden;
-}
-
-/* SEARCH */
-
-/* restrict global search form width */
-#searchForm {
-  width:350px;
-}
-
-#searchTxt {
-  width:200px;
-}
-
-/* disable twiddle and size selectors for left column */
-#leftSearchControl div {
-  width: 100%;
-}
-
-#leftSearchControl .gsc-twiddle {
-  background-image : none;
-}
-
-#leftSearchControl td, #searchForm td {
-  border: 0px solid #000;
-}
-
-#leftSearchControl .gsc-resultsHeader .gsc-title {
-  padding-left : 0px;
-  font-weight : bold;
-  font-size : 13px;
-  color:#006699;
-  display : none;
-}
-
-#leftSearchControl .gsc-resultsHeader div.gsc-results-selector {
-  display : none;
-}
-
-#leftSearchControl .gsc-resultsRoot {
-  padding-top : 6px;
-}
-
-#leftSearchControl div.gs-visibleUrl-long {
-  display : block;
-  color:#006699;
-}
-
-.gsc-webResult div.gs-visibleUrl-short,
-table.gsc-branding,
-.gsc-clear-button {
-  display : none;
-}
-
-.gsc-cursor-box .gsc-cursor div.gsc-cursor-page,
-.gsc-cursor-box .gsc-trailing-more-results a.gsc-trailing-more-results,
-#leftSearchControl a,
-#leftSearchControl a b {
-  color:#006699;
-}
-
-.gsc-resultsHeader {
-  display: none;
-}
-
-/* Disable built in search forms */
-.gsc-control form.gsc-search-box {
-  display : none;
-}
-table.gsc-search-box {
-  margin:6px 0 0 0;
-  border-collapse:collapse;
-}
-
-td.gsc-input {
-  padding:0 2px;
-  width:100%;
-  vertical-align:middle;
-}
-
-input.gsc-input {
-  border:1px solid #BCCDF0;
-  width:99%;
-  padding-left:2px;
-  font-size:.95em;
-}
-
-td.gsc-search-button {
-  text-align: right;
-  padding:0;
-  vertical-align:top;
-}
-
-#search-button {
-  margin:0 0 0 2px;
-  font-size:11px;
-}
-
-/* search result tabs */
-
-#doc-content .gsc-control {
-  position:relative;
-}
-
-#doc-content .gsc-tabsArea {
-  position:relative;
-  white-space:nowrap;
-}
-
-#doc-content .gsc-tabHeader {
-  padding: 3px 6px;
-  position:relative;
-}
-
-#doc-content .gsc-tabHeader.gsc-tabhActive {
-  border-top: 2px solid #94B922;
-}
-
-#doc-content h2#searchTitle {
-  padding:0;
-}
-
-#doc-content .gsc-resultsbox-visible {
-  padding:1em 0 0 6px;
-}
-
-/* CAROUSEL */
-
-#homeMiddle {
-  padding: 0px 0px 0px 0px;
-  float: left;
-  width: 584px;
-  height: 627px;
-  position:relative;
-}
-
-#topAnnouncement {
-  background:url(images/home/bg_home_announcement.png) no-repeat 0 0;
-}
-  
-#homeTitle {
-  padding:15px 15px 0;
-  height:30px;
-}
-
-#homeTitle h2 {
-  padding:0;
-}
-
-#announcement-block {
-  padding:0 15px 0;
-  overflow:hidden;
-  background: url(images/hr_gray_side.jpg) no-repeat 15px 0;
-  zoom:1;
-}
-
-#announcement-block>* {
-  padding:15px 0 0;
-}
-
-#announcement-block img {
-  float:left;
-  margin:0 30px 0 0;
-}
-
-#announcement {
-  float:left;
-  margin:0;
-}
-
-#carousel {
-  background:url(images/home/bg_home_carousel.png) no-repeat 0 0;
-  position:relative;
-  height:400px;
-}
-
-#carouselMain {
-  background: url(images/home/bg_home_carousel_board.png) 0 0 no-repeat;
-  height:auto;
-  padding: 25px 21px 0;
-  overflow:hidden;
-  position:relative;
-  zoom:1; /*IE6*/
-}
-
-#carouselMain img {
-  margin:0;
-}
-
-#carouselMain .bulletinDesc h3 {
-  margin:0;
-  padding:0;
-}
-
-#carouselMain .bulletinDesc p {
-  margin:0;
-  padding:0.7em 0 0;
-}
-
-#carouselWheel {
-  background: url(images/home/bg_home_carousel_wheel.png) 0 0 no-repeat;
-  padding-top:40px;
-  height:150px;
-}
-
-.clearer { clear:both; }
-
-a#arrow-left, a#arrow-right {
-  float:left;
-  width:42px;
-  height:42px;
-  background-image:url(images/home/carousel_buttons_sprite.png);
-  background-repeat:no-repeat;
-}
-a#arrow-left {
-  margin:35px 3px 0 10px;
-}
-a#arrow-right {
-  margin:35px 10px 0 0;
-}
-a.arrow-left-off,
-a#arrow-left.arrow-left-off:hover {
-  background-position:0 0;
-}
-a.arrow-right-off,
-a#arrow-right.arrow-right-off:hover {
-  background-position:-42px 0;
-}
-a#arrow-left:hover {
-  background-position:0 -42px;
-}
-a#arrow-right:hover {
-  background-position:-42px -42px;
-}
-a.arrow-left-on {
-  background-position:0 0;
-}
-a.arrow-right-on {
-  background-position:-42px 0;
-}
-a.arrow-right-off,
-a.arrow-left-off {
-  cursor:default;
-}
-
-.app-list-container {
-  margin:0 20px;
-  position:relative;
-  width:100%;
-}
-
-div#list-clip {
-  height:110px;
-  width:438px;
-  overflow:hidden;
-  position:relative;
-  float:left;
-}
-
-div#app-list {
-  left:0;
-  z-index:1;
-  position:absolute;
-  margin:11px 0 0;
-  _margin-top:13px;
-  width:1000%;
-}
-
-#app-list a {
-  display:block;
-  float:left;
-  height:90px;
-  width:90px;
-  margin:0 24px 0;
-  padding:3px;
-  background:#99cccc;
-  -webkit-border-radius:7px;
-  -moz-border-radius:7px;
-  border-radius:7px;
-  text-decoration:none;
-  text-align:center;
-  font-size:11px;
-  line-height:11px;
-}
-
-#app-list a span {
-  position:relative;
-  top:-4px;
-}
-
-#app-list img {
-  width:90px;
-  height:70px;
-  margin:0;
-}
-
-#app-list a.selected,
-#app-list a:active.selected,
-#app-list a:hover.selected {
-  background:#A4C639;
-  color:#fff;
-  cursor:default;
-  text-decoration:none;
-}
-
-#app-list a:hover,
-#app-list a:active {
-  background:#ff9900;
-}
-
-#app-list a:hover span,
-#app-list a:active span {
-  text-decoration:underline;
-}
-
-#droid-name {
-  padding-top:.5em;
-  color:#666;
-  padding-bottom:.25em;
-}
-
-/*IE6*/
-* html #app-list a { zoom: 1; margin:0 24px 0 15px;}
-
-* html #list-clip {
-  width:430px !important;
-}
-
-/*carousel bulletin layouts*/
-/*460px width*/
-/*185px height*/
-.img-left {
-  float:left;
-  width:230px;
-  overflow:hidden;
-  padding:8px 0 8px 8px;
-}
-.desc-right {
-  float:left;
-  width:270px;
-  padding:10px;
-}
-.img-right {
-  float:right;
-  width:220px;
-  overflow:hidden;
-  padding:8px 8px 8px 0;
-}
-.desc-left {
-  float:right;
-  width:280px;
-  padding:10px;
-  text-align:right;
-}
-.img-top {
-  padding:20px 20px 0;
-}
-.desc-bottom {
-  padding:10px;
-}
-
-
-/* VIDEO PAGE */
-
-#mainBodyLeft.videoPlayer {
-  width:570px;
-}
-
-#mainBodyRight.videoPlayer {
-  width:330px;
-}
-
-/* player */
-
-#videoPlayerBox {
-  background-color: #DAF3FC;
-  border-radius:7px;
-  -moz-border-radius:7px;
-  -webkit-border-radius:7px;
-  width:530px;
-  padding:20px;
-  border:1px solid #d3ecf5;
-  box-shadow:2px 3px 1px #eee;
-  -moz-box-shadow:2px 3px 1px #eee;
-  -webkit-box-shadow:2px 3px 1px #eee;
-}
-
-#videoBorder {
-  background-color: #FFF;
-  min-height:399px;
-  height:auto !important;
-  border:1px solid #ccdada;
-  border-radius:7px 7px 0 0;
-  -moz-border-radius:7px 7px 0 0;
-  -webkit-border-top-left-radius:7px;
-  -webkit-border-top-right-radius:7px;
-}
-
-#videoPlayerTitle {
-  width:500px;
-  padding:15px 15px 0;
-}
-
-#videoPlayerTitle h2 {
-  font-weight:bold;
-  font-size:1.2em;
-  color:#336666;
-  margin:0;
-  padding:0;
-}
-
-#objectWrapper {
-  padding:15px 15px;
-  height:334px;
-  width:500px;
-}
-
-/* playlist tabs */
-
-ul#videoTabs {
-  list-style-type:none;
-  padding:0;
-  clear:both;
-  margin:0;
-  padding: 20px 0 0 15px;
-  zoom:1; /* IE7/8, otherwise top-padding is double */
-}
-
-ul#videoTabs li {
-  display:inline;
-  padding:0;
-  margin:0 3px 0 0;
-  line-height:2em;
-}
-
-ul#videoTabs li a {
-  border-radius:7px 7px 0 0;
-  -moz-border-radius:7px 7px 0 0;
-  -webkit-border-top-left-radius:7px;
-  -webkit-border-top-right-radius:7px;
-  background:#95c0d0;
-  color:#fff;
-  text-decoration:none;
-  padding:.45em 1.5em;
-  font-weight:bold;
-}
-
-ul#videoTabs li.selected a {
-  font-weight:bold;
-  text-decoration:none;
-  color:#555;
-  background:#daf3fc;
-  border-bottom:1px solid #daf3fc;
-}
-
-ul#videoTabs li:hover a {
-  background:#85acba;
-}
-
-ul#videoTabs li.selected:hover a {
-  background:#daf3fc;
-}
-
-/* playlists */
-
-#videos {
-  background:#daf3fc;
-  margin-bottom:1.5em;
-  padding:15px;
-  border-radius:5px;
-  -moz-border-radius:5px;
-  -webkit-border-radius:5px;
-  box-shadow:2px 3px 1px #eee;
-  -moz-box-shadow:2px 3px 1px #eee;
-  -webkit-box-shadow:2px 3px 1px #eee;
-}
-
-#videos div {
-  display:none;
-}
-
-#videos div.selected {
-  display:block;
-}
-
-ul.videoPreviews {
-  list-style:none;
-  padding:0;
-  margin:0;
-  zoom:1; /* IE, otherwise, layout doesn't update when showing 'more' */
-}
-
-ul.videoPreviews li {
-  margin:0 0 5px;
-  padding:0;
-  overflow:hidden;
-  position:relative;
-}
-
-#mainBodyFixed ul.videoPreviews h3 {
-  font-size: 12px;
-  margin:0 0 1em 130px;
-  padding:0;
-  font-weight:bold;
-  color:inherit;
-}
-
-ul.videoPreviews a {
-  margin:1px;
-  padding:10px;
-  text-decoration:none;
-  height:90px;
-  display:block;
-  border-radius:5px;
-  -moz-border-radius:5px;
-  -webkit-border-radius:5px;
-  background-color:transparent;
-}
-
-ul.videoPreviews a:hover {
-  background-color:#FFF;
-  border:none; /* IE8, otherwise, bg doesn't work */
-}
-
-ul.videoPreviews a.selected {
-  background-color: #FF9900;
-}
-
-ul.videoPreviews img {
-  float:left;
-  clear:left;
-  margin:0;
-}
-
-ul.videoPreviews h3 {
-  font-size:12px;
-  font-weight:bold;
-  text-decoration:none;
-  margin:0 0 1em 130px;
-  padding:0;
-}
-
-ul.videoPreviews p {
-  font-size: 12px;
-  text-decoration:none;
-  margin:0 0 1.2em 130px;
-}
-
-ul.videoPreviews p.full {
-  display:none;
-}
-
-ul.videoPreviews span.more {
-  padding:0 0 0 12px;
-  background:url(images/arrow_bluelink_down.png) 0 2px no-repeat;
-}
-
-ul.videoPreviews span.less {
-  padding:0 0 0 12px;
-  background:url(images/arrow_bluelink_up.png) 0 2px no-repeat;
-  display:none;
-}
-
-ul.videoPreviews p.toggle {
-  position:absolute;
-  margin:0;
-  margin-top:-23px; /* instead of bottom:23px, because IE won't do it correctly */
-  left:140px;
-}
-
-ul.videoPreviews p.toggle a {
-  height:auto;
-  margin:0;
-  padding:0;
-  zoom:1; /* IE6, otherwise the margin considers the img on redraws */
-}
-
-ul.videoPreviews p.toggle a:hover {
-  text-decoration:underline;
-  background:transparent; /* IE6, otherwise it inherits white */
-}
-
-/* featured videos */
-
-#mainBodyRight h2 {
-  padding:0 0 5px;
-}
-
-#mainBodyRight ul.videoPreviews {
-  margin:10px 0 0;
-}
-
-#mainBodyRight ul.videoPreviews li {
-  font-size:11px;
-  line-height:13px;
-  margin:0 0 5px;
-  padding:0;
-}
-
-#mainBodyRight ul.videoPreviews h3 {
-  padding:0;
-  margin:0;
-}
-
-#mainBodyRight ul.videoPreviews a {
-  text-decoration:none;
-  height:108px;
-  border:1px solid #FFF;
-}
-
-#mainBodyRight ul.videoPreviews a:hover {
-  border:1px solid #CCDADA;
-}
-
-#mainBodyRight ul.videoPreviews a.selected {
-  border:1px solid #FFF;
-}
-
-#mainBodyRight ul.videoPreviews p {
-  line-height:1.2em;
-  padding:0;
-  margin:4px 0 0 130px;
-}
-
-#mainBodyRight ul.videoPreviews img {
-  margin-top:5px;
-}
-
-/* Pretty printing styles. Used with prettify.js. */
-
-.str { color: #080; }
-.kwd { color: #008; }
-.com { color: #800; }
-.typ { color: #606; }
-.lit { color: #066; }
-.pun { color: #660; }
-.pln { color: #000; }
-dl.tag-list dt code,
-.tag { color: #008; }
-dl.atn-list dt code,
-.atn { color: #828; }
-.atv { color: #080; }
-.dec { color: #606; }
-
-@media print {
-  .str { color: #060; }
-  .kwd { color: #006; font-weight: bold; }
-  .com { color: #600; font-style: italic; }
-  .typ { color: #404; font-weight: bold; }
-  .lit { color: #044; }
-  .pun { color: #440; }
-  .pln { color: #000; }
-  .tag { color: #006; font-weight: bold; }
-  .atn { color: #404; }
-  .atv { color: #060; }
-}
diff --git a/javadoc/assets/android-developer-docs-devguide.css b/javadoc/assets/android-developer-docs-devguide.css
deleted file mode 100755
index d8bd3b3..0000000
--- a/javadoc/assets/android-developer-docs-devguide.css
+++ /dev/null
@@ -1,19 +0,0 @@
-
-@import url("android-developer-docs.css");
-
-/* Page title */
-
-#jd-header h1 {
-  padding: 8px 0 0 0;
-}
-
-/* Page content container */
-
-#jd-header table {
-margin: 0 0 1em 1em;
-}
-
-#jd-content table table,
-#jd-content table img {
-  margin:1em 0;
-}
\ No newline at end of file
diff --git a/javadoc/assets/android-developer-docs.css b/javadoc/assets/android-developer-docs.css
deleted file mode 100755
index 9cc06fe..0000000
--- a/javadoc/assets/android-developer-docs.css
+++ /dev/null
@@ -1,1297 +0,0 @@
-/* file: android-developer-docs.css
-   author: smain
-   date: september 2008
-   info: developer doc styles (developer.android.com)
-*/
-
-@import url("android-developer-core.css");
-
-#title {
-  border-bottom: 4px solid #ccc;
-  display:none;
-}
-
-#title h1 {
-  color:#336666;
-  margin:0;
-  padding: 5px 10px;
-  font-size: 1em;
-  line-height: 15px;
-}
-
-#title h1 .small{
-  color:#000;
-  margin:0;
-  font-size: 13px;
-  padding:0 0 0 15px;
-}
-
-/* SIDE NAVIGATION */
-
-#side-nav {
-  padding:0 6px 0 0;
-  background-color: #fff;
-  font-size:12px;
-}
-
-#side-nav.not-resizable {
-  background:url('images/sidenav-rule.png') no-repeat 243px 0;
-}
-
-#resize-packages-nav {
-/* keeps the resize handle below the h-scroll handle */
-  height:270px;
-  overflow:hidden;
-  max-height:100%;
-}
-
-#packages-nav {
-  height:270px;
-  max-height:inherit;
-  position:relative;
-  overflow:auto;
-}
-
-#classes-nav,
-#devdoc-nav {
-  overflow:auto;
-  position:relative;
-}
-
-#side-nav ul {
-  list-style: none;
-  margin: 0;
-  padding:5px 0;
-}
-
-#side-nav ul ul {
-  margin: .35em 0 0 0;
-  padding: 0;
-}
-
-#side-nav li {
-  padding:0;
-  line-height:16px;
-  white-space:nowrap;
-  zoom:1;
-}
-
-#side-nav li h2 {
-  font-size:12px;
-  font-weight: bold;
-  margin:.5em 0 0 0;
-  padding: 3px 0 1px 9px;
-}
-
-#side-nav li a {
-  text-decoration:none;
-  padding: 0 0 0 18px;
-  zoom:1;
-}
-
-#side-nav li a span+span {
-  display:none;
-}
-
-#side-nav li a:hover {
-  text-decoration:underline;
-}
-
-#side-nav li a+a {
-  padding: 0;
-}
-/*second level (nested) list*/
-#side-nav li li li a {
-  padding: 0 0 0 28px;
-}
-/*third level (nested) list*/
-#side-nav li li li li a {
-  padding: 0 0 0 38px;
-}
-
-#side-nav .selected {
-  background-color: #435a6e;
-  color: #fff;
-  font-weight:bold;
-}
-
-#side-nav .selected a {
-  color: #fff;
-  text-decoration:none;
-}
-
-#side-nav strong {
-  display:block;
-}
-
-#side-nav .toggle-list .toggle-img {
-  margin:0;
-  padding:0;
-  position:absolute;
-  top:0;
-  left:0;
-  height:16px;
-  width:15px;
-  outline-style:none;
-}
-/* second-level toggle */
-#side-nav .toggle-list .toggle-list .toggle-img {
-  left:10px;
-}
-
-#side-nav .closed .toggle-img,
-#side-nav .open .closed .toggle-img {
-  background:url('images/triangle-closed-small.png') 7px 4px no-repeat;
-}
-#side-nav .open .toggle-img {
-  background:url('images/triangle-opened-small.png') 7px 4px no-repeat;
-}
-
-#side-nav .toggle-list {
-  position:relative;
-}
-
-#side-nav .toggle-list ul {
-  margin:0;
-  display:none;
-}
-
-#side-nav .toggle-list div {
-  display:block;
-}
-
-#index-links .selected {
-  background-color: #fff;
-  color: #000;
-  font-weight:normal;
-  text-decoration:none;
-}
-
-#index-links {
-  padding:7px 0 4px 10px;
-}
-
-/* nav tree */
-
-#nav-tree ul {
-  padding:5px 0 1.5em;
-}
-
-#side-nav #nav-tree ul li a,
-#side-nav #nav-tree ul li span.no-children {
-  padding: 0 0 0 0;
-  margin: 0;
-}
-
-#nav-tree .plus {
-  margin: 0 3px 0 0;
-}
-
-#nav-tree ul ul {
-  list-style: none;
-  margin: 0;
-  padding: 0 0 0 0;
-}
-
-#nav-tree ul li {
-  margin: 0;
-  padding: 0 0 0 0;
-  white-space: nowrap;
-}
-
-#nav-tree .children_ul {
-  margin:0;
-}
-
-#nav-tree a.nolink {
-  color: black;
-  text-decoration: none;
-}
-
-#nav-tree span.label {
-  width: 100%;
-}
-
-#nav-tree {
-  overflow-x: auto;
-  overflow-y: scroll;
-}
-
-#nav-swap {
-  font-size:10px;
-  line-height:10px;
-  margin-left:1em;
-  text-decoration:none;
-  display:block;
-  position:absolute;
-  bottom:2px;
-  left:0px;
-}
-
-#tree-link {
-
-}
-
-/* DOCUMENT BODY */
-
-#doc-content {
-  overflow:auto;
-}
-
-#jd-header {
-  background-color: #E2E2E2;
-  padding: 7px 15px;
-}
-
-#jd-header h1 {
-  margin: 0 0 10px;
-  font-size:1.7em;
-}
-
-#jd-header .crumb {
-  font-size:.9em;
-  line-height:1em;
-  color:#777;
-}
-
-#jd-header .crumb a,
-#jd-header .crumb a:visited {
-  text-decoration:none;
-  color:#777;
-}
-
-#jd-header .crumb a:hover {
-  text-decoration:underline;
-}
-
-#jd-header table {
-  margin:0;
-  padding:0;
-}
-
-#jd-header td {
-  border:none;
-  padding:0;
-  vertical-align:top;
-}
-
-#jd-header.guide-header {
-  background-color:#fff;
-  color:#435a6e;
-  height:50px;
-}
-
-#jd-descr {
-  position:relative;
-}
-
-/* summary tables for reference pages */
-.jd-sumtable {
-  margin: .5em 1em 1em 1em;
-  width:95%; /* consistent table widths; within IE's quirks */
-  font-size:.9em;
-}
-
-.jd-sumtable a {
-  text-decoration:none;
-}
-
-.jd-sumtable a:hover {
-  text-decoration:underline;
-}
-
-/* the link inside a sumtable for "Show All/Hide All" */
-.toggle-all {
-  display:block;
-  float:right;
-  font-weight:normal;
-  font-size:0.9em;
-}
-
-/* adjustments for in/direct subclasses tables */
-.jd-sumtable-subclasses {
-  margin: 1em 0 0 0;
-  max-width:968px;
-}
-
-/* extra space between end of method name and open-paren */
-.sympad {
-  margin-right: 2px;
-}
-
-/* right alignment for the return type in sumtable */
-.jd-sumtable .jd-typecol {
-  text-align:right;
-}
-
-/* adjustments for the expando table-in-table */
-.jd-sumtable-expando {
-  margin:.5em 0;
-  padding:0;
-}
-
-/* a div that holds a short description */
-.jd-descrdiv {
-  padding:3px 1em 0 1em;
-  margin:0;
-  border:0;
-}
-
-/* page-top-right container for reference pages (holds
-links to summary tables) */
-#api-info-block {
-  font-size:.8em;
-  padding:6px 10px;
-  font-weight:normal;
-  float:right;
-  text-align:right;
-  color:#999;
-  max-width:70%;
-}
-
-#api-level-toggle {
-  padding:0 0px;
-  font-size:11px;
-  margin:3px 10px 0 0;
-}
-
-#api-level-toggle label.disabled {
-  color:#999;
-}
-
-div.api-level {
-  font-size:.8em;
-  font-weight:normal;
-  color:#999;
-  float:right;
-  padding:0 7px 0;
-  margin-top:-25px;
-}
-
-#api-info-block div.api-level {
-  font-size:1.3em;
-  font-weight:bold;
-  float:none;
-  color:#444;
-  padding:0;
-  margin:0;
-}
-
-/* Force link colors for IE6 */
-div.api-level a {
-  color:#999;
-}
-#api-info-block div.api-level a:link {
-  color:#444;
-}
-#api-level-toggle a {
-  color:#999;
-}
-
-div#naMessage {
-  display:none;
-  width:555px;
-  height:0;
-  margin:0 auto;
-}
-
-div#naMessage div {
-  width:450px;
-  position:fixed;
-  margin:50px 0;
-  padding:4em 4em 3em;
-  background:#FFF;
-  background:rgba(255,255,255,0.7);
-  border:1px solid #dddd00;
-}
-/* IE6 can't position fixed */
-* html div#naMessage div { position:absolute; }
-
-div#naMessage strong {
-  font-size:1.1em;
-}
-
-.absent,
-.absent a:link,
-.absent a:visited,
-.absent a:hover,
-.absent * {
-  color:#bbb !important;
-  cursor:default !important;
-  text-decoration:none !important;
-}
-
-#api-level-toggle a,
-.api-level a {
-  color:inherit;
-  text-decoration:none;
-}
-
-#api-level-toggle a:hover,
-.api-level a:hover {
-  color:inherit;
-  text-decoration:underline !important;
-  cursor:pointer !important;
-}
-
-#side-nav li.absent.selected,
-#side-nav li.absent.selected *,
-#side-nav div.label.absent.selected,
-#side-nav div.label.absent.selected * {
-  background-color:#eaeaea !important;
-}
-/* IE6 quirk (won't chain classes, so just keep background blue) */
-* html #side-nav li.selected,
-* html #side-nav li.selected *,
-* html #side-nav div.label.selected,
-* html #side-nav div.label.selected * {
-  background-color: #435a6e !important;
-}
-
-
-.absent h4.jd-details-title,
-.absent h4.jd-details-title * {
-  background-color:#f6f6f6 !important;
-}
-
-.absent img {
-  opacity: .3;
-  filter: alpha(opacity=30);
-  -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
-}
-
-
-/* applies to a div containing links to summary tables */
-.sum-details-links {
-  padding:0;
-  font-weight:normal;
-}
-
-.sum-details-links a {
-  text-decoration:none;
-}
-
-.sum-details-links a:hover {
-  text-decoration:underline;
-}
-
-
-/* inheritance table */
-.jd-inheritance-table {
-  border-spacing:0;
-  margin:0;
-  padding:0;
-  font-size:.9em;
-}
-.jd-inheritance-table td {
-  border: none;
-  margin: 0;
-  padding: 0;
-}
-.jd-inheritance-table .jd-inheritance-space {
-  font-weight:bold;
-  width:1em;
-}
-.jd-inheritance-table .jd-inheritance-interface-cell {
-  padding-left: 17px;
-}
-
-#jd-content {
-  padding: 18px 15px;
-}
-
-hr {
-  background-color:#ccc;
-  border-color:#fff;
-  margin:2em 0 1em;
-}
-
-/* DOC CLASSES */
-
-#jd-content h1 {
-/*sdk page*/
-  font-size:1.6em;
-  color:#336666;
-  margin:0 0 .5em;
-}
-
-#jd-content h2 {
-  font-size:1.45em;
-  color:#111;
-  border-top:2px solid #ccc;
-  padding: .5em 0 0;
-  margin: 2em 0 1em 0;
-}
-
-#jd-content h3 {
-  font-size:1.2em;
-  color:#222;
-  padding: .75em 0 .65em 0;
-  margin:0;
-}
-
-#jd-content h4 {
-  font-size:1.1em;
-  margin-bottom:.5em;
-  color:#222;
-}
-
-#jd-content .small-header {
-  font-size:1em;
-  color:#000;
-  font-weight:bold;
-  border:none;
-  padding:0;
-  margin:1em 0 .5em;
-  position:inherit;
-}
-
-#jd-content table {
-  margin: 0 0 1em 1em;
-}
-
-#jd-content img {
-  margin: 0 0 1em 1em;
-}
-
-#jd-content li img,
-#jd-content dd img {
-  margin:.5em 0 0 1em;
-}
-
-.nolist {
-  list-style:none;
-  padding:0;
-  margin:0 0 1em 1em;
-}
-
-.nolist li {
-  padding:0 0 2px;
-  margin:0;
-}
-
-h4 .normal {
-  font-size:.9em;
-  font-weight:normal;
-}
-
-.caps {
-  font-variant:small-caps;
-  font-size:1.2em;
-}
-
-dl.tag-list dl.atn-list {
-  padding:0 0 0 2em;
-}
-
-.jd-details {
-/*  border:1px solid #669999;
-  padding:4px; */
-  margin:0 0 1em;
-}
-
-/* API reference: a container for the
-.tagdata blocks that make up the detailed
-description */
-.jd-details-descr {
-  padding:0;
-  margin:.5em .25em;
-}
-
-/* API reference: a block containing
-a detailed description, a params table,
-seealso list, etc */
-.jd-tagdata {
-  margin:.5em 1em;
-}
-
-.jd-tagdata p {
-  margin:0 0 1em 1em;
-}
-
-/* API reference: adjustments to
-the detailed description block */
-.jd-tagdescr {
-  margin:.25em 0 .75em 0;
-  line-height:1em;
-}
-
-.jd-tagdescr p {
-  margin:.5em 0;
-  padding:0;
-
-}
-
-.jd-tagdescr ol,
-.jd-tagdescr ul {
-  margin:0 2.5em;
-  padding:0;
-}
-
-.jd-tagdescr table,
-.jd-tagdescr img {
-  margin:.25em 1em;
-}
-
-.jd-tagdescr li {
-margin:0 0 .25em 0;
-padding:0;
-}
-
-/* API reference: heading marking
-the details section for constants,
-attrs, methods, etc. */
-h4.jd-details-title {
-  font-size:1.15em;
-  background-color: #E2E2E2;
-  margin:1.5em 0 .6em;
-  padding:3px 95px 3px 3px; /* room for api-level */
-}
-
-h4.jd-tagtitle {
-  margin:0;
-}
-
-/* API reference: heading for "Parameters", "See Also", etc.,
-in details sections */
-h5.jd-tagtitle {
-  margin:0 0 .25em 0;
-  font-size:1em;
-}
-
-.jd-tagtable {
-  margin:0;
-}
-
-.jd-tagtable td,
-.jd-tagtable th {
-  border:none;
-  background-color:#fff;
-  vertical-align:top;
-  font-weight:normal;
-  padding:2px 10px;
-}
-
-.jd-tagtable th {
-  font-style:italic;
-}
-
-#jd-content table h2 {
-  background-color: #d6d6d6;
-  font-size: 1.1em;
-  margin:0 0 10px;
-  padding:5px;
-  left:0;
-  width:auto;
-}
-
-div.special {
-  padding: .5em 1em 1em 1em;
-  margin: 0 0 1em;
-  background-color: #DAF3FC;
-  border:1px solid #d3ecf5;
-  border-radius:5px;
-  -moz-border-radius:5px;
-  -webkit-border-radius:5px;
-}
-
-.toggle-content-toggleme {
-  display:none;
-}
-
-.toggle-content-button {
-  font-size:.9em;
-  line-height:.9em;
-  text-decoration:none;
-  position:relative;
-  top:5px;
-}
-
-.toggle-content-button:hover {
-  text-decoration:underline;
-}
-
-div.special p {
-  margin: .5em 0 0 0;
-}
-
-div.special ol {
-  margin: 0;
-}
-
-div.special ol li {
-  margin: 0;
-  padding: 0;
-}
-
-#jd-content div.special h2,
-#jd-content div.special h3 {
-  color:#669999;
-  font-size:1.2em;
-  border:none;
-  margin:0 0 .5em;
-  padding:0;
-}
-
-p.note, p.caution, p.warning {
-  margin: 1em;
-  padding: 0 0 0 .5em;
-  border-left: 4px solid;
-}
-
-p.special-note {
-  background-color:#EBF3DB;
-  padding:10px 20px;
-  margin:0 0 1em;
-}
-
-p.note {
- border-color: #99aacc;
-}
-
-p.warning {
-  border-color: #aa0033;
-}
-
-p.caution {
-  border-color: #ffcf00;
-}
-
-p.warning b, p.warning strong {
-  font-weight: bold;
-}
-
-li p.note, li p.warning {
-  margin: .5em 0 0 0;
-  padding: .2em .5em .2em .9em;
-}
-
-dl.xml dt {
-  font-variant:small-caps;
-  font-size:1.2em;
-}
-
-dl.xml dl {
-  padding:0;
-}
-
-dl.xml dl dt {
-  font-variant:normal;
-  font-size:1em;
-}
-
-.listhead li {
-  font-weight: bold;
-}
-
-.listhead li *, /*ie*/.listhead li li {
-  font-weight: normal;
-}
-
-ol.no-style,
-ul.no-style {
-  list-style:none;
-  padding-left:1em;
-}
-
-.new {
-  font-size: .78em;
-  font-weight: bold;
-  color: #ff3d3d;
-  text-decoration: none;
-  vertical-align:top;
-  line-height:.9em;
-}
-
-pre.classic {
-  background-color:transparent;
-  border:none;
-  padding:0;
-}
-
-p.img-caption {
-  margin: -0.5em 0 1em 1em; /* matches default img left-margin */
-}
-
-div.figure {
-  float:right;
-  clear:right;
-  margin:1em 0 0 3em;
-  padding:0;
-  background-color:#fff;
-  /* width must be defined w/ an inline style matching the image width */
-}
-
-#jd-content
-div.figure img {
-  margin: 0 0 1em;
-}
-
-div.figure p.img-caption {
-  margin: -0.5em 0 1em 0;
-}
-
-p.table-caption {
-  margin: 0 0 0.5em 1em; /* matches default table left-margin */
-}
-
-/* BEGIN quickview sidebar element styles */
-
-#qv-wrapper {
-  float: right;
-  width:310px; /* +35px padding */
-  background-color:#fff;
-  margin:-48px 0 2px 0;
-  padding:0 0 20px 35px;
-}
-
-#qv {
-  background-color:#fff;
-  border:4px solid #dee8f1;
-  margin:0;
-  padding:0 5px 5px;
-  width:292px; /* +10px padding; +8px border */
-  font-size:.9em;
-}
-
-#qv ol {
-  list-style:none;
-  padding: 0;
-}
-
-#qv ol ol{
-  list-style:none;
-  padding: 0 0 0 12px;
-  margin:0;
-}
-
-#qv ul {
-  padding: 0 10px 0 2em;
-}
-
-#qv li {
-  padding: 0 10px 3px;
-  line-height: 1.2em;
-}
-
-#qv li li {
-  padding: 3px 10px 0;
-}
-
-#qv ul li {
-  padding: 0 10px 0 0;
-}
-
-#qv li.selected a {
-  color:#555;
-  text-decoration:none;
-}
-
-#qv a {
-  color:#cc6600;
-}
-
-#qv p {
-  margin:8px 0 0;
-  padding:0 10px;
-}
-
-#qv-extra #rule {
-  padding: 0 10px;
-  margin: 0;
-}
-
-#qv-sub-rule {
-  padding: 6px 20px;
-  margin: 0;
-}
-
-#qv-sub-rule p {
-  margin: 0;
-}
-
-#jd-content #qv h2 {
-  font-size:1.05em;
-  font-weight:bold;
-  margin:12px 0 .25em 0;
-  padding:0 10px;
-  background-color:transparent;
-  color:#7BB026;
-  border:none;
-  left:0;
-  z-index:1;
-}
-
-/* END quickview sidebar element styles */
-
-/* Begin sidebox sidebar element styles */
-
-.sidebox-wrapper {
-  float:right;
-  clear:right;
-  width:310px; /* +35px padding */
-  background-color:#fff;
-  margin:0;
-  padding:0 0 20px 35px;
-}
-
-.sidebox {
-  border-left:1px solid #dee8f1;
-  background-color:#ffffee;
-  margin:0;
-  padding:8px 12px;
-  font-size:0.9em;
-  width:285px; /* +24px padding; +1px border */
-}
-
-.sidebox p {
-  margin-bottom: .25em;
-}
-
-.sidebox ul {
-  padding: 0 0 0 1.5em;
-}
-
-.sidebox li ul {
-  margin-top:0;
-  margin-bottom:.1em;
-}
-
-.sidebox li {
-padding:0 0 0 0em;
-}
-
-#jd-content .sidebox h2,
-#jd-content .sidebox h3,
-#jd-content .sidebox h4,
-#jd-content .sidebox h5 {
-  border:none;
-  font-size:1em;
-  margin:0;
-  padding:0 0 8px;
-  left:0;
-  z-index:0;
-}
-
-.sidebox hr {
-  background-color:#ccc;
-  border:none;
-}
-
-/* End sidebox sidebar element styles */
-
-/* BEGIN image and caption styles (originally for UI Guidelines docs) */
-
-table.image-caption {
-  padding:0;
-  margin:.5em 0;
-  border:0;
-}
-
-td.image-caption-i {
-  font-size:92%;
-  padding:0 5px;
-  margin:0;
-  border:0;
-}
-
-td.image-caption-i img {
-  padding:0 1em;
-  margin:0;
-}
-
-.image-list {
-  width:24px;
-  text-align:center;
-}
-
-td.image-caption-c {
-  font-size:92%;
-  padding:1em 2px 2px 2px;
-  margin:0;
-  border:0;
-  width:350px;
-}
-
-.grad-rule-top {
-background-image:url(images/grad-rule-qv.png);
-background-repeat:no-repeat;
-padding-top:1em;
-margin-top:0;
-}
-
-.image-caption-nested {
-  margin-top:0;
-  padding:0 0 0 1em;
-}
-
-.image-caption-nested td {
-  padding:0 4px 2px 0;
-  margin:0;
-  border:0;
-}
-
-/* END image and caption styles */
-
-/* table of contents */
-
-ol.toc {
-  margin: 0 0 1em 0;
-  padding: 0;
-  list-style: none;
-  font-size:95%;
-}
-
-ol.toc li {
-  font-weight: bold;
-  margin: 0 0 .5em 1em;
-  padding: 0;
-}
-
-ol.toc li p {
-  font-weight: normal;
-}
-
-ol.toc li ol {
-  margin: 0;
-  padding: 0;
-}
-  
-ol.toc li li {
-  padding: 0;
-  margin: 0 0 0 1em;
-  font-weight: normal;
-  list-style: none;
-}
-
-table ol.toc {
-  margin-left: 0;
-}
-
-.columns td {
-  padding:0 5px;
-  border:none;
-}
-
-/* link table */
-.jd-linktable {
-  margin: 0 0 1em;
-  border-bottom: 1px solid #888;
-}
-.jd-linktable th,
-.jd-linktable td {
-  padding: 3px 5px;
-  vertical-align: top;
-  text-align: left;
-  border:none;
-}
-.jd-linktable tr {
-  background-color: #fff;
-}
-.jd-linktable td {
-  border-top: 1px solid #888;
-  background-color: inherit;
-}
-.jd-linktable td  p {
-  padding: 0 0 5px;
-}
-.jd-linktable .jd-linkcol {
-}
-.jd-linktable .jd-descrcol {
-}
-.jd-linktable .jd-typecol {
-  text-align:right;
-}
-.jd-linktable .jd-valcol {
-}
-.jd-linktable .jd-commentrow {
-  border-top:none;
-  padding-left:25px;
-}
-.jd-deprecated-warning {
-  margin-top: 0;
-  margin-bottom: 10px;
-}
-
-tr.alt-color {
-  background-color: #f6f6f6;
-}
-
-/* expando trigger */
-#jd-content .jd-expando-trigger-img {
-  margin:0;
-}
-
-/* jd-expando */
-.jd-inheritedlinks {
-  padding:0 0 0 13px
-}
-
-/* SDK PAGE */
-table.download tr {
-  background-color:#d9d9d9;
-}
-
-table.download tr.alt-color {
-  background-color:#ededed;
-}
-
-table.download td,
-table.download th {
-  border:2px solid #fff;
-  padding:10px 5px;
-}
-
-table.download th {
-  background-color:#6d8293;
-  color:#fff;
-}
-
-/* INLAY 180 COPY and 240PX EXTENSION */
-/* modified to 43px so that all browsers eliminate the package panel h-scroll */
-.g-tpl-240 .g-unit,
-.g-unit .g-tpl-240 .g-unit,
-.g-unit .g-unit .g-tpl-240 .g-unit {
-  display: block;
-  margin: 0 0 0 243px;
-  width: auto;
-  float: none;
-}
-.g-unit .g-unit .g-tpl-240 .g-first,
-.g-unit .g-tpl-240 .g-first,
-.g-tpl-240 .g-first {
-  display: block;
-  margin: 0;
-  width: 243px;
-  float: left;
-}
-/* 240px alt */
-.g-tpl-240-alt .g-unit,
-.g-unit .g-tpl-240-alt .g-unit,
-.g-unit .g-unit .g-tpl-240-alt .g-unit {
-  display: block;
-  margin: 0 243px 0 0;
-  width: auto;
-  float: none;
-}
-.g-unit .g-unit .g-tpl-240-alt .g-first,
-.g-unit .g-tpl-240-alt .g-first,
-.g-tpl-240-alt .g-first {
-  display: block;
-  margin: 0;
-  width: 243px;
-  float: right;
-}
-
-/* 180px */
-.g-tpl-180 .g-unit,
-.g-unit .g-tpl-180 .g-unit,
-.g-unit .g-unit .g-tpl-180 .g-unit {
-  display: block;
-  margin: 0 0 0 180px;
-  width: auto;
-  float: none;
-}
-.g-unit .g-unit .g-tpl-180 .g-first,
-.g-unit .g-tpl-180 .g-first,
-.g-tpl-180 .g-first {
-  display: block;
-  margin: 0;
-  width: 180px;
-  float: left;
-}
-/* 180px alt */
-.g-tpl-180-alt .g-unit,
-.g-unit .g-tpl-180-alt .g-unit,
-.g-unit .g-unit .g-tpl-180-alt .g-unit {
-  display: block;
-  margin: 0 180px 0 0;
-  width: auto;
-  float: none;
-}
-.g-unit .g-unit .g-tpl-180-alt .g-first,
-.g-unit .g-tpl-180-alt .g-first,
-.g-tpl-180-alt .g-first {
-  display: block;
-  margin: 0;
-  width: 180px;
-  float: right;
-}
-
-  
-/* JQUERY RESIZABLE STYLES */
-.ui-resizable { position: relative; }
-.ui-resizable-handle { position: absolute; display: none; font-size: 0.1px; z-index:1; }
-.ui-resizable .ui-resizable-handle { display: block; }
-body .ui-resizable-disabled .ui-resizable-handle { display: none; }
-body .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-s { cursor: s-resize; height: 6px; width: 100%; bottom: 0px; left: 0px;
-  background: transparent url("images/resizable-s2.gif") repeat scroll center top; }
-.ui-resizable-e { cursor: e-resize; width: 6px; right: 0px; top: 0px; height: 100%;
-  background: transparent url("images/resizable-e2.gif") repeat scroll right center; }
-
-@media print {
-
-  body {
-    overflow:visible;
-  }
-
-  #header {
-    height:50px;
-  }
-
-  #header-tabs,
-  #headerRight,
-  #side-nav,
-  #api-info-block {
-    display:none;
-  }
-
-  #body-content {
-    position:inherit;
-  }
-  
-  #doc-content {
-    margin-left:0 !important;
-    height:auto !important;
-    width:auto !important;
-    overflow:inherit;
-    display:inline;
-  }
-
-  #jd-header {
-    padding:10px 0;
-  }
-
-  #jd-content {
-    padding:15px 0 0;
-  }
-
-  #footer {
-    float:none;
-    margin:2em 0 0;
-  }
-
-  h4.jd-details-title {
-    border-bottom:1px solid #666;
-  }
-
-  pre {
-    /* these allow lines to break (if there's a white space) */
-    overflow: visible;
-    text-wrap: unrestricted;
-    white-space: -moz-pre-wrap; /* Moz */
-    white-space: -pre-wrap; /* Opera 4-6 */
-    white-space: -o-pre-wrap; /* Opera 7 */
-    white-space: pre-wrap; /* CSS3  */
-    word-wrap: break-word; /* IE 5.5+ */
-  }
-
-  h1, h2, h3, h4, h5, h6 {
-    page-break-after: avoid;
-  }
-
-  table, img {
-    page-break-inside: avoid;
-  }
-}
diff --git a/javadoc/assets/android-developer-docs.js b/javadoc/assets/android-developer-docs.js
deleted file mode 100755
index 6f52141..0000000
--- a/javadoc/assets/android-developer-docs.js
+++ /dev/null
@@ -1,595 +0,0 @@
-var resizePackagesNav;
-var classesNav;
-var devdocNav;
-var sidenav;
-var content;
-var HEADER_HEIGHT = -1;
-var cookie_namespace = 'android_developer';
-var NAV_PREF_TREE = "tree";
-var NAV_PREF_PANELS = "panels";
-var nav_pref;
-var toRoot;
-var toAssets;
-var isMobile = false; // true if mobile, so we can adjust some layout
-var isIE6 = false; // true if IE6
-
-// TODO: use $(document).ready instead
-function addLoadEvent(newfun) {
-  var current = window.onload;
-  if (typeof window.onload != 'function') {
-    window.onload = newfun;
-  } else {
-    window.onload = function() {
-      current();
-      newfun();
-    }
-  }
-}
-
-var agent = navigator['userAgent'].toLowerCase();
-// If a mobile phone, set flag and do mobile setup
-if ((agent.indexOf("mobile") != -1) ||      // android, iphone, ipod
-    (agent.indexOf("blackberry") != -1) ||
-    (agent.indexOf("webos") != -1) ||
-    (agent.indexOf("mini") != -1)) {        // opera mini browsers
-  isMobile = true;
-  addLoadEvent(mobileSetup);
-// If not a mobile browser, set the onresize event for IE6, and others
-} else if (agent.indexOf("msie 6") != -1) {
-  isIE6 = true;
-  addLoadEvent(function() {
-    window.onresize = resizeAll;
-  });
-} else {
-  addLoadEvent(function() {
-    window.onresize = resizeHeight;
-  });
-}
-
-function mobileSetup() {
-  $("body").css({'overflow':'auto'});
-  $("html").css({'overflow':'auto'});
-  $("#body-content").css({'position':'relative', 'top':'0'});
-  $("#doc-content").css({'overflow':'visible', 'border-left':'3px solid #DDD'});
-  $("#side-nav").css({'padding':'0'});
-  $("#nav-tree").css({'overflow-y': 'auto'});
-}
-
-/* loads the lists.js file to the page.
-Loading this in the head was slowing page load time */
-addLoadEvent( function() {
-  var lists = document.createElement("script");
-  lists.setAttribute("type","text/javascript");
-  lists.setAttribute("src", toRoot+"lists.js");
-  document.getElementsByTagName("head")[0].appendChild(lists);
-} );
-
-addLoadEvent( function() {
-  $("pre:not(.no-pretty-print)").addClass("prettyprint");
-  prettyPrint();
-} );
-
-function setToRoot(root, assets) {
-  toRoot = root;
-  toAssets = assets;
-  // note: toRoot also used by carousel.js
-}
-
-function restoreWidth(navWidth) {
-  var windowWidth = $(window).width() + "px";
-  content.css({marginLeft:parseInt(navWidth) + 6 + "px"}); //account for 6px-wide handle-bar
-
-  if (isIE6) {
-    content.css({width:parseInt(windowWidth) - parseInt(navWidth) - 6 + "px"}); // necessary in order for scrollbars to be visible
-  }
-
-  sidenav.css({width:navWidth});
-  resizePackagesNav.css({width:navWidth});
-  classesNav.css({width:navWidth});
-  $("#packages-nav").css({width:navWidth});
-}
-
-function restoreHeight(packageHeight) {
-  var windowHeight = ($(window).height() - HEADER_HEIGHT);
-  var swapperHeight = windowHeight - 13;
-  $("#swapper").css({height:swapperHeight + "px"});
-  sidenav.css({height:windowHeight + "px"});
-  content.css({height:windowHeight + "px"});
-  resizePackagesNav.css({maxHeight:swapperHeight + "px", height:packageHeight});
-  classesNav.css({height:swapperHeight - parseInt(packageHeight) + "px"});
-  $("#packages-nav").css({height:parseInt(packageHeight) - 6 + "px"}); //move 6px to give space for the resize handle
-  devdocNav.css({height:sidenav.css("height")});
-  $("#nav-tree").css({height:swapperHeight + "px"});
-}
-
-function readCookie(cookie) {
-  var myCookie = cookie_namespace+"_"+cookie+"=";
-  if (document.cookie) {
-    var index = document.cookie.indexOf(myCookie);
-    if (index != -1) {
-      var valStart = index + myCookie.length;
-      var valEnd = document.cookie.indexOf(";", valStart);
-      if (valEnd == -1) {
-        valEnd = document.cookie.length;
-      }
-      var val = document.cookie.substring(valStart, valEnd);
-      return val;
-    }
-  }
-  return 0;
-}
-
-function writeCookie(cookie, val, section, expiration) {
-  if (val==undefined) return;
-  section = section == null ? "_" : "_"+section+"_";
-  if (expiration == null) {
-    var date = new Date();
-    date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
-    expiration = date.toGMTString();
-  }
-  document.cookie = cookie_namespace + section + cookie + "=" + val + "; expires=" + expiration+"; path=/";
-}
-
-function getSection() {
-  if (location.href.indexOf("/reference/") != -1) {
-    return "reference";
-  } else if (location.href.indexOf("/guide/") != -1) {
-    return "guide";
-  } else if (location.href.indexOf("/resources/") != -1) {
-    return "resources";
-  }
-  var basePath = getBaseUri(location.pathname);
-  return basePath.substring(1,basePath.indexOf("/",1));
-}
-
-function init() {
-  HEADER_HEIGHT = $("#header").height()+3;
-  $("#side-nav").css({position:"absolute",left:0});
-  content = $("#doc-content");
-  resizePackagesNav = $("#resize-packages-nav");
-  classesNav = $("#classes-nav");
-  sidenav = $("#side-nav");
-  devdocNav = $("#devdoc-nav");
-
-  var cookiePath = getSection() + "_";
-  
-  if (!isMobile) {
-    $("#resize-packages-nav").resizable({handles: "s", resize: function(e, ui) { resizePackagesHeight(); } });
-    $(".side-nav-resizable").resizable({handles: "e", resize: function(e, ui) { resizeWidth(); } });
-    var cookieWidth = readCookie(cookiePath+'width');
-    var cookieHeight = readCookie(cookiePath+'height');
-    if (cookieWidth) {
-      restoreWidth(cookieWidth);
-    } else if ($(".side-nav-resizable").length) {
-      resizeWidth();
-    }
-    if (cookieHeight) {
-      restoreHeight(cookieHeight);
-    } else {
-      resizeHeight();
-    }
-  }
-
-  if (devdocNav.length) { // only dev guide, resources, and sdk
-    tryPopulateResourcesNav();
-    highlightNav(location.href);
-  }
-}
-
-function tryPopulateResourcesNav() {
-  var sampleList = $('#devdoc-nav-sample-list');
-  var articleList = $('#devdoc-nav-article-list');
-  var tutorialList = $('#devdoc-nav-tutorial-list');
-  var topicList = $('#devdoc-nav-topic-list');
-
-  if (!topicList.length || !ANDROID_TAGS || !ANDROID_RESOURCES)
-    return;
-
-  var topics = [];
-  for (var topic in ANDROID_TAGS['topic']) {
-    topics.push({name:topic,title:ANDROID_TAGS['topic'][topic]});
-  }
-  topics.sort(function(x,y){ return (x.title < y.title) ? -1 : 1; });
-  for (var i = 0; i < topics.length; i++) {
-    topicList.append(
-        $('<li>').append(
-          $('<a>')
-            .attr('href', toRoot + "../resources/browser.html?tag=" + topics[i].name)
-            .append($('<span>')
-              .addClass('en')
-              .html(topics[i].title)
-            )
-          )
-        );
-  }
-
-  var _renderResourceList = function(tag, listNode) {
-    var resources = [];
-    var tags;
-    var resource;
-    var i, j;
-    for (i = 0; i < ANDROID_RESOURCES.length; i++) {
-      resource = ANDROID_RESOURCES[i];
-      tags = resource.tags || [];
-      var hasTag = false;
-      for (j = 0; j < tags.length; j++)
-        if (tags[j] == tag) {
-          hasTag = true;
-          break;
-        }
-      if (!hasTag)
-        continue;
-      resources.push(resource);
-    }
-    //resources.sort(function(x,y){ return (x.title.en < y.title.en) ? -1 : 1; });
-    for (i = 0; i < resources.length; i++) {
-      resource = resources[i];
-      var listItemNode = $('<li>').append(
-          $('<a>')
-            .attr('href', toRoot + "../resources/" + resource.path)
-            .append($('<span>')
-              .addClass('en')
-              .html(resource.title.en)
-            )
-          );
-      tags = resource.tags || [];
-      for (j = 0; j < tags.length; j++) {
-        if (tags[j] == 'new') {
-          listItemNode.get(0).innerHTML += '&nbsp;<span class="new">new!</span>';
-          break;
-        }
-      }
-      listNode.append(listItemNode);
-    }
-  };
-
-  _renderResourceList('sample', sampleList);
-  _renderResourceList('article', articleList);
-  _renderResourceList('tutorial', tutorialList);
-}
-
-function highlightNav(fullPageName) {
-  var lastSlashPos = fullPageName.lastIndexOf("/");
-  var firstSlashPos;
-  if (fullPageName.indexOf("/guide/") != -1) {
-      firstSlashPos = fullPageName.indexOf("/guide/");
-    } else if (fullPageName.indexOf("/sdk/") != -1) {
-      firstSlashPos = fullPageName.indexOf("/sdk/");
-    } else {
-      firstSlashPos = fullPageName.indexOf("/resources/");
-    }
-  if (lastSlashPos == (fullPageName.length - 1)) { // if the url ends in slash (add 'index.html')
-    fullPageName = fullPageName + "index.html";
-  }
-  // First check if the exact URL, with query string and all, is in the navigation menu
-  var pathPageName = fullPageName.substr(firstSlashPos);
-  var link = $("#devdoc-nav a[href$='"+ pathPageName+"']");
-  if (link.length == 0) {
-    var htmlPos = fullPageName.lastIndexOf(".html", fullPageName.length);
-    pathPageName = fullPageName.slice(firstSlashPos, htmlPos + 5); // +5 advances past ".html"
-    link = $("#devdoc-nav a[href$='"+ pathPageName+"']");
-    if ((link.length == 0) && ((fullPageName.indexOf("/guide/") != -1) || (fullPageName.indexOf("/resources/") != -1))) {
-      // if there's no match, then let's backstep through the directory until we find an index.html page
-      // that matches our ancestor directories (only for dev guide and resources)
-      lastBackstep = pathPageName.lastIndexOf("/");
-      while (link.length == 0) {
-        backstepDirectory = pathPageName.lastIndexOf("/", lastBackstep);
-        link = $("#devdoc-nav a[href$='"+ pathPageName.slice(0, backstepDirectory + 1)+"index.html']");
-        lastBackstep = pathPageName.lastIndexOf("/", lastBackstep - 1);
-        if (lastBackstep == 0) break;
-      }
-    }
-  }
-
-  // add 'selected' to the <li> or <div> that wraps this <a>
-  link.parent().addClass('selected');
-
-  // if we're in a toggleable root link (<li class=toggle-list><div><a>)
-  if (link.parent().parent().hasClass('toggle-list')) {
-    toggle(link.parent().parent(), false); // open our own list
-    // then also check if we're in a third-level nested list that's toggleable
-    if (link.parent().parent().parent().is(':hidden')) {
-      toggle(link.parent().parent().parent().parent(), false); // open the super parent list
-    }
-  }
-  // if we're in a normal nav link (<li><a>) and the parent <ul> is hidden
-  else if (link.parent().parent().is(':hidden')) {
-    toggle(link.parent().parent().parent(), false); // open the parent list
-    // then also check if the parent list is also nested in a hidden list
-    if (link.parent().parent().parent().parent().is(':hidden')) {
-      toggle(link.parent().parent().parent().parent().parent(), false); // open the super parent list
-    }
-  }
-}
-
-/* Resize the height of the nav panels in the reference,
- * and save the new size to a cookie */
-function resizePackagesHeight() {
-  var windowHeight = ($(window).height() - HEADER_HEIGHT);
-  var swapperHeight = windowHeight - 13; // move 13px for swapper link at the bottom
-  resizePackagesNav.css({maxHeight:swapperHeight + "px"});
-  classesNav.css({height:swapperHeight - parseInt(resizePackagesNav.css("height")) + "px"});
-
-  $("#swapper").css({height:swapperHeight + "px"});
-  $("#packages-nav").css({height:parseInt(resizePackagesNav.css("height")) - 6 + "px"}); //move 6px for handle
-
-  var section = getSection();
-  writeCookie("height", resizePackagesNav.css("height"), section, null);
-}
-
-/* Resize the height of the side-nav and doc-content divs,
- * which creates the frame effect */
-function resizeHeight() {
-  var docContent = $("#doc-content");
-
-  // Get the window height and always resize the doc-content and side-nav divs
-  var windowHeight = ($(window).height() - HEADER_HEIGHT);
-  docContent.css({height:windowHeight + "px"});
-  $("#side-nav").css({height:windowHeight + "px"});
-
-  var href = location.href;
-  // If in the reference docs, also resize the "swapper", "classes-nav", and "nav-tree"  divs
-  if (href.indexOf("/reference/") != -1) {
-    var swapperHeight = windowHeight - 13;
-    $("#swapper").css({height:swapperHeight + "px"});
-    $("#classes-nav").css({height:swapperHeight - parseInt(resizePackagesNav.css("height")) + "px"});
-    $("#nav-tree").css({height:swapperHeight + "px"});
-
-  // If in the dev guide docs, also resize the "devdoc-nav" div
-  } else if (href.indexOf("/guide/") != -1) {
-    $("#devdoc-nav").css({height:sidenav.css("height")});
-  } else if (href.indexOf("/resources/") != -1) {
-    $("#devdoc-nav").css({height:sidenav.css("height")});
-  }
-
-  // Hide the "Go to top" link if there's no vertical scroll
-  if ( parseInt($("#jd-content").css("height")) <= parseInt(docContent.css("height")) ) {
-    $("a[href='#top']").css({'display':'none'});
-  } else {
-    $("a[href='#top']").css({'display':'inline'});
-  }
-}
-
-/* Resize the width of the "side-nav" and the left margin of the "doc-content" div,
- * which creates the resizable side bar */
-function resizeWidth() {
-  var windowWidth = $(window).width() + "px";
-  if (sidenav.length) {
-    var sidenavWidth = sidenav.css("width");
-  } else {
-    var sidenavWidth = 0;
-  }
-  content.css({marginLeft:parseInt(sidenavWidth) + 6 + "px"}); //account for 6px-wide handle-bar
-
-  if (isIE6) {
-    content.css({width:parseInt(windowWidth) - parseInt(sidenavWidth) - 6 + "px"}); // necessary in order to for scrollbars to be visible
-  }
-
-  resizePackagesNav.css({width:sidenavWidth});
-  classesNav.css({width:sidenavWidth});
-  $("#packages-nav").css({width:sidenavWidth});
-
-  if ($(".side-nav-resizable").length) { // Must check if the nav is resizable because IE6 calls resizeWidth() from resizeAll() for all pages
-    var section = getSection();
-    writeCookie("width", sidenavWidth, section, null);
-  }
-}
-
-/* For IE6 only,
- * because it can't properly perform auto width for "doc-content" div,
- * avoiding this for all browsers provides better performance */
-function resizeAll() {
-  resizeHeight();
-  resizeWidth();
-}
-
-function getBaseUri(uri) {
-  var intlUrl = (uri.substring(0,6) == "/intl/");
-  if (intlUrl) {
-    base = uri.substring(uri.indexOf('intl/')+5,uri.length);
-    base = base.substring(base.indexOf('/')+1, base.length);
-      //alert("intl, returning base url: /" + base);
-    return ("/" + base);
-  } else {
-      //alert("not intl, returning uri as found.");
-    return uri;
-  }
-}
-
-function requestAppendHL(uri) {
-//append "?hl=<lang> to an outgoing request (such as to blog)
-  var lang = getLangPref();
-  if (lang) {
-    var q = 'hl=' + lang;
-    uri += '?' + q;
-    window.location = uri;
-    return false;
-  } else {
-    return true;
-  }
-}
-
-function loadLast(cookiePath) {
-  var location = window.location.href;
-  if (location.indexOf("/"+cookiePath+"/") != -1) {
-    return true;
-  }
-  var lastPage = readCookie(cookiePath + "_lastpage");
-  if (lastPage) {
-    window.location = lastPage;
-    return false;
-  }
-  return true;
-}
-
-$(window).unload(function(){
-  var path = getBaseUri(location.pathname);
-  if (path.indexOf("/reference/") != -1) {
-    writeCookie("lastpage", path, "reference", null);
-  } else if (path.indexOf("/guide/") != -1) {
-    writeCookie("lastpage", path, "guide", null);
-  } else if (path.indexOf("/resources/") != -1) {
-    writeCookie("lastpage", path, "resources", null);
-  }
-});
-
-function toggle(obj, slide) {
-  var ul = $("ul:first", obj);
-  var li = ul.parent();
-  if (li.hasClass("closed")) {
-    if (slide) {
-      ul.slideDown("fast");
-    } else {
-      ul.show();
-    }
-    li.removeClass("closed");
-    li.addClass("open");
-    $(".toggle-img", li).attr("title", "hide pages");
-  } else {
-    ul.slideUp("fast");
-    li.removeClass("open");
-    li.addClass("closed");
-    $(".toggle-img", li).attr("title", "show pages");
-  }
-}
-
-function buildToggleLists() {
-  $(".toggle-list").each(
-    function(i) {
-      $("div:first", this).append("<a class='toggle-img' href='#' title='show pages' onClick='toggle(this.parentNode.parentNode, true); return false;'></a>");
-      $(this).addClass("closed");
-    });
-}
-
-function getNavPref() {
-  var v = readCookie('reference_nav');
-  if (v != NAV_PREF_TREE) {
-    v = NAV_PREF_PANELS;
-  }
-  return v;
-}
-
-function chooseDefaultNav() {
-  nav_pref = getNavPref();
-  if (nav_pref == NAV_PREF_TREE) {
-    $("#nav-panels").toggle();
-    $("#panel-link").toggle();
-    $("#nav-tree").toggle();
-    $("#tree-link").toggle();
-  }
-}
-
-function swapNav() {
-  if (nav_pref == NAV_PREF_TREE) {
-    nav_pref = NAV_PREF_PANELS;
-  } else {
-    nav_pref = NAV_PREF_TREE;
-    init_default_navtree(toRoot);
-  }
-  var date = new Date();
-  date.setTime(date.getTime()+(10*365*24*60*60*1000)); // keep this for 10 years
-  writeCookie("nav", nav_pref, "reference", date.toGMTString());
-
-  $("#nav-panels").toggle();
-  $("#panel-link").toggle();
-  $("#nav-tree").toggle();
-  $("#tree-link").toggle();
-
-  if ($("#nav-tree").is(':visible')) scrollIntoView("nav-tree");
-  else {
-    scrollIntoView("packages-nav");
-    scrollIntoView("classes-nav");
-  }
-}
-
-function scrollIntoView(nav) {
-  var navObj = $("#"+nav);
-  if (navObj.is(':visible')) {
-    var selected = $(".selected", navObj);
-    if (selected.length == 0) return;
-    if (selected.is("div")) selected = selected.parent();
-
-    var scrolling = document.getElementById(nav);
-    var navHeight = navObj.height();
-    var offsetTop = selected.position().top;
-    if (selected.parent().parent().is(".toggle-list")) offsetTop += selected.parent().parent().position().top;
-    if(offsetTop > navHeight - 92) {
-      scrolling.scrollTop = offsetTop - navHeight + 92;
-    }
-  }
-}
-
-function changeTabLang(lang) {
-  var nodes = $("#header-tabs").find("."+lang);
-  for (i=0; i < nodes.length; i++) { // for each node in this language
-    var node = $(nodes[i]);
-    node.siblings().css("display","none"); // hide all siblings
-    if (node.not(":empty").length != 0) { //if this languages node has a translation, show it
-      node.css("display","inline");
-    } else { //otherwise, show English instead
-      node.css("display","none");
-      node.siblings().filter(".en").css("display","inline");
-    }
-  }
-}
-
-function changeNavLang(lang) {
-  var nodes = $("#side-nav").find("."+lang);
-  for (i=0; i < nodes.length; i++) { // for each node in this language
-    var node = $(nodes[i]);
-    node.siblings().css("display","none"); // hide all siblings
-    if (node.not(":empty").length != 0) { // if this languages node has a translation, show it
-      node.css("display","inline");
-    } else { // otherwise, show English instead
-      node.css("display","none");
-      node.siblings().filter(".en").css("display","inline");
-    }
-  }
-}
-
-function changeDocLang(lang) {
-  changeTabLang(lang);
-  changeNavLang(lang);
-}
-
-function changeLangPref(lang, refresh) {
-  var date = new Date();
-  expires = date.toGMTString(date.setTime(date.getTime()+(10*365*24*60*60*1000))); // keep this for 50 years
-  //alert("expires: " + expires)
-  writeCookie("pref_lang", lang, null, expires);
-  //changeDocLang(lang);
-  if (refresh) {
-    l = getBaseUri(location.pathname);
-    window.location = l;
-  }
-}
-
-function loadLangPref() {
-  var lang = readCookie("pref_lang");
-  if (lang != 0) {
-    $("#language").find("option[value='"+lang+"']").attr("selected",true);
-  }
-}
-
-function getLangPref() {
-  var lang = $("#language").find(":selected").attr("value");
-  if (!lang) {
-    lang = readCookie("pref_lang");
-  }
-  return (lang != 0) ? lang : 'en';
-}
-
-
-function toggleContent(obj) {
-  var button = $(obj);
-  var div = $(obj.parentNode);
-  var toggleMe = $(".toggle-content-toggleme",div);
-  if (button.hasClass("show")) {
-    toggleMe.slideDown();
-    button.removeClass("show").addClass("hide");
-  } else {
-    toggleMe.slideUp();
-    button.removeClass("hide").addClass("show");
-  }
-  $("span", button).toggle();
-}
diff --git a/javadoc/assets/android-developer-reference.js b/javadoc/assets/android-developer-reference.js
deleted file mode 100755
index c854f01..0000000
--- a/javadoc/assets/android-developer-reference.js
+++ /dev/null
@@ -1,402 +0,0 @@
-var API_LEVEL_ENABLED_COOKIE = "api_level_enabled";
-var API_LEVEL_INDEX_COOKIE = "api_level_index";
-var minLevelIndex = 0;
-
-function toggleApiLevelSelector(checkbox) {
-  var date = new Date();
-  date.setTime(date.getTime()+(10*365*24*60*60*1000)); // keep this for 10 years
-  var expiration = date.toGMTString();
-  if (checkbox.checked) {
-    $("#apiLevelSelector").removeAttr("disabled");
-    $("#api-level-toggle label").removeClass("disabled");
-    writeCookie(API_LEVEL_ENABLED_COOKIE, 1, null, expiration);
-  } else {
-    $("#apiLevelSelector").attr("disabled","disabled");
-    $("#api-level-toggle label").addClass("disabled");
-    writeCookie(API_LEVEL_ENABLED_COOKIE, 0, null, expiration);
-  }
-  changeApiLevel();
-}
-
-function buildApiLevelSelector() {
-  var userApiLevelEnabled = readCookie(API_LEVEL_ENABLED_COOKIE);
-  var userApiLevelIndex = readCookie(API_LEVEL_INDEX_COOKIE); // No cookie (zero) is the same as maxLevel.
-  
-  if (userApiLevelEnabled == 0) {
-    $("#apiLevelSelector").attr("disabled","disabled");
-  } else {
-    $("#apiLevelCheckbox").attr("checked","checked");
-    $("#api-level-toggle label").removeClass("disabled");
-  }
-  
-  minLevelValue = $("body").attr("class");
-  minLevelIndex = apiKeyToIndex(minLevelValue);
-  var select = $("#apiLevelSelector").html("").change(changeApiLevel);
-  for (var i = SINCE_DATA.length-1; i >= 0; i--) {
-    var option = $("<option />").attr("value",""+SINCE_DATA[i]).append(""+SINCE_LABELS[i]);
-    select.append(option);
-  }
-  
-  // get the DOM element and use setAttribute cuz IE6 fails when using jquery .attr('selected',true)
-  var selectedLevelItem = $("#apiLevelSelector option").get(SINCE_DATA.length - userApiLevelIndex - 1);
-  selectedLevelItem.setAttribute('selected',true);
-}
-
-function changeApiLevel() {
-  var userApiLevelEnabled = readCookie(API_LEVEL_ENABLED_COOKIE);
-  var selectedLevelIndex = SINCE_DATA.length - 1;
-  
-  if (userApiLevelEnabled == 0) {
-    toggleVisisbleApis(selectedLevelIndex, "body");
-  } else {
-    selectedLevelIndex = getSelectedLevelIndex();
-    toggleVisisbleApis(selectedLevelIndex, "body");
-    
-    var date = new Date();
-    date.setTime(date.getTime()+(10*365*24*60*60*1000)); // keep this for 10 years
-    var expiration = date.toGMTString();
-    writeCookie(API_LEVEL_INDEX_COOKIE, selectedLevelIndex, null, expiration);
-  }
-  
-  var thing = ($("#jd-header").html().indexOf("package") != -1) ? "package" : "class";
-  showApiWarning(thing, selectedLevelIndex, minLevelIndex);
-}
-
-function showApiWarning(thing, selectedLevelIndex, minLevelIndex) {
-  if (selectedLevelIndex < minLevelIndex) {
-	  $("#naMessage").show().html("<div><p><strong>This " + thing
-		  + " is not available with API version "
-		  + SINCE_LABELS[selectedLevelIndex] + ".</strong></p>"
-	      + "<p>To reveal this "
-	      + "document, change the value in the API filter above.</p>");
-  } else {
-    $("#naMessage").hide();
-  }
-}
-
-function toggleVisisbleApis(selectedLevelIndex, context) {
-  var apis = $(".api",context);
-  apis.each(function(i) {
-    var obj = $(this);
-    var className = obj.attr("class");
-    var apiLevelPos = className.lastIndexOf("-")+1;
-    var apiLevelEndPos = className.indexOf(" ", apiLevelPos);
-    apiLevelEndPos = apiLevelEndPos != -1 ? apiLevelEndPos : className.length;
-    var apiLevelName = className.substring(apiLevelPos, apiLevelEndPos);
-    var apiLevelIndex = apiKeyToIndex(apiLevelName);
-    if (apiLevelIndex > selectedLevelIndex) {
-      obj.addClass("absent").attr("title","Requires API Level "+SINCE_LABELS[apiLevelIndex]+" or higher");
-    } else {
-      obj.removeClass("absent").removeAttr("title");
-    }
-  });
-}
-
-function apiKeyToIndex(key) {
-  for (i = 0; i < SINCE_DATA.length; i++) {
-    if (SINCE_DATA[i] == key) {
-      return i;
-    }
-  }
-  return -1;
-}
-
-function getSelectedLevelIndex() {
-  return SINCE_DATA.length - $("#apiLevelSelector").attr("selectedIndex") - 1;
-}
-
-/* NAVTREE */
-
-function new_node(me, mom, text, link, children_data, api_level)
-{
-  var node = new Object();
-  node.children = Array();
-  node.children_data = children_data;
-  node.depth = mom.depth + 1;
-
-  node.li = document.createElement("li");
-  mom.get_children_ul().appendChild(node.li);
-
-  node.label_div = document.createElement("div");
-  node.label_div.className = "label";
-  if (api_level != null) {
-    $(node.label_div).addClass("api");
-    $(node.label_div).addClass("api-level-"+api_level);
-  }
-  node.li.appendChild(node.label_div);
-  node.label_div.style.paddingLeft = 10*node.depth + "px";
-
-  if (children_data == null) {
-    // 12 is the width of the triangle and padding extra space
-    node.label_div.style.paddingLeft = ((10*node.depth)+12) + "px";
-  } else {
-    node.label_div.style.paddingLeft = 10*node.depth + "px";
-    node.expand_toggle = document.createElement("a");
-    node.expand_toggle.href = "javascript:void(0)";
-    node.expand_toggle.onclick = function() {
-          if (node.expanded) {
-            $(node.get_children_ul()).slideUp("fast");
-            node.plus_img.src = toAssets + "images/triangle-closed-small.png";
-            node.expanded = false;
-          } else {
-            expand_node(me, node);
-          }
-       };
-    node.label_div.appendChild(node.expand_toggle);
-
-    node.plus_img = document.createElement("img");
-    node.plus_img.src = toAssets + "images/triangle-closed-small.png";
-    node.plus_img.className = "plus";
-    node.plus_img.border = "0";
-    node.expand_toggle.appendChild(node.plus_img);
-
-    node.expanded = false;
-  }
-
-  var a = document.createElement("a");
-  node.label_div.appendChild(a);
-  node.label = document.createTextNode(text);
-  a.appendChild(node.label);
-  if (link) {
-    a.href = me.toroot + link;
-  } else {
-    if (children_data != null) {
-      a.className = "nolink";
-      a.href = "javascript:void(0)";
-      a.onclick = node.expand_toggle.onclick;
-      // This next line shouldn't be necessary.
-      node.expanded = false;
-    }
-  }
-  
-
-  node.children_ul = null;
-  node.get_children_ul = function() {
-      if (!node.children_ul) {
-        node.children_ul = document.createElement("ul");
-        node.children_ul.className = "children_ul";
-        node.children_ul.style.display = "none";
-        node.li.appendChild(node.children_ul);
-      }
-      return node.children_ul;
-    };
-
-  return node;
-}
-
-function expand_node(me, node)
-{
-  if (node.children_data && !node.expanded) {
-    if (node.children_visited) {
-      $(node.get_children_ul()).slideDown("fast");
-    } else {
-      get_node(me, node);
-      if ($(node.label_div).hasClass("absent")) $(node.get_children_ul()).addClass("absent");
-      $(node.get_children_ul()).slideDown("fast");
-    }
-    node.plus_img.src = toAssets + "images/triangle-opened-small.png";
-    node.expanded = true;
-    
-    // perform api level toggling because new nodes are new to the DOM
-    var selectedLevel = $("#apiLevelSelector").attr("selectedIndex");
-    toggleVisisbleApis(selectedLevel, "#side-nav");
-  }
-}
-
-function get_node(me, mom)
-{
-  mom.children_visited = true;
-  for (var i in mom.children_data) {
-    var node_data = mom.children_data[i];
-    mom.children[i] = new_node(me, mom, node_data[0], node_data[1],
-        node_data[2], node_data[3]);
-  }
-}
-
-function this_page_relative(toroot)
-{
-  var full = document.location.pathname;
-  var file = "";
-  if (toroot.substr(0, 1) == "/") {
-    if (full.substr(0, toroot.length) == toroot) {
-      return full.substr(toroot.length);
-    } else {
-      // the file isn't under toroot.  Fail.
-      return null;
-    }
-  } else {
-    if (toroot != "./") {
-      toroot = "./" + toroot;
-    }
-    do {
-      if (toroot.substr(toroot.length-3, 3) == "../" || toroot == "./") {
-        var pos = full.lastIndexOf("/");
-        file = full.substr(pos) + file;
-        full = full.substr(0, pos);
-        toroot = toroot.substr(0, toroot.length-3);
-      }
-    } while (toroot != "" && toroot != "/");
-    return file.substr(1);
-  }
-}
-
-function find_page(url, data)
-{
-  var nodes = data;
-  var result = null;
-  for (var i in nodes) {
-    var d = nodes[i];
-    if (d[1] == url) {
-      return new Array(i);
-    }
-    else if (d[2] != null) {
-      result = find_page(url, d[2]);
-      if (result != null) {
-        return (new Array(i).concat(result));
-      }
-    }
-  }
-  return null;
-}
-
-function load_navtree_data() {
-  var navtreeData = document.createElement("script");
-  navtreeData.setAttribute("type","text/javascript");
-  navtreeData.setAttribute("src", toAssets + "navtree_data.js");
-  $("head").append($(navtreeData));
-}
-
-function init_default_navtree(toroot) {
-  init_navtree("nav-tree", toroot, NAVTREE_DATA);
-  
-  // perform api level toggling because because the whole tree is new to the DOM
-  var selectedLevel = $("#apiLevelSelector").attr("selectedIndex");
-  toggleVisisbleApis(selectedLevel, "#side-nav");
-}
-
-function init_navtree(navtree_id, toroot, root_nodes)
-{
-  var me = new Object();
-  me.toroot = toroot;
-  me.node = new Object();
-
-  me.node.li = document.getElementById(navtree_id);
-  me.node.children_data = root_nodes;
-  me.node.children = new Array();
-  me.node.children_ul = document.createElement("ul");
-  me.node.get_children_ul = function() { return me.node.children_ul; };
-  //me.node.children_ul.className = "children_ul";
-  me.node.li.appendChild(me.node.children_ul);
-  me.node.depth = 0;
-
-  get_node(me, me.node);
-
-  me.this_page = this_page_relative(toroot);
-  me.breadcrumbs = find_page(me.this_page, root_nodes);
-  if (me.breadcrumbs != null && me.breadcrumbs.length != 0) {
-    var mom = me.node;
-    for (var i in me.breadcrumbs) {
-      var j = me.breadcrumbs[i];
-      mom = mom.children[j];
-      expand_node(me, mom);
-    }
-    mom.label_div.className = mom.label_div.className + " selected";
-    addLoadEvent(function() {
-      scrollIntoView("nav-tree");
-      });
-  }
-}
-
-/* TOGGLE INHERITED MEMBERS */
-
-/* Toggle an inherited class (arrow toggle)
- * @param linkObj  The link that was clicked.
- * @param expand  'true' to ensure it's expanded. 'false' to ensure it's closed.
- *                'null' to simply toggle.
- */
-function toggleInherited(linkObj, expand) {
-    var base = linkObj.getAttribute("id");
-    var list = document.getElementById(base + "-list");
-    var summary = document.getElementById(base + "-summary");
-    var trigger = document.getElementById(base + "-trigger");
-    var a = $(linkObj);
-    if ( (expand == null && a.hasClass("closed")) || expand ) {
-        list.style.display = "none";
-        summary.style.display = "block";
-        trigger.src = toAssets + "images/triangle-opened.png";
-        a.removeClass("closed");
-        a.addClass("opened");
-    } else if ( (expand == null && a.hasClass("opened")) || (expand == false) ) {
-        list.style.display = "block";
-        summary.style.display = "none";
-        trigger.src = toAssets + "images/triangle-closed.png";
-        a.removeClass("opened");
-        a.addClass("closed");
-    }
-    return false;
-}
-
-/* Toggle all inherited classes in a single table (e.g. all inherited methods)
- * @param linkObj  The link that was clicked.
- * @param expand  'true' to ensure it's expanded. 'false' to ensure it's closed.
- *                'null' to simply toggle.
- */
-function toggleAllInherited(linkObj, expand) {
-  var a = $(linkObj);
-  var table = $(a.parent().parent().parent()); // ugly way to get table/tbody
-  var expandos = $(".jd-expando-trigger", table);
-  if ( (expand == null && a.text() == "[Expand]") || expand ) {
-    expandos.each(function(i) {
-      toggleInherited(this, true);
-    });
-    a.text("[Collapse]");
-  } else if ( (expand == null && a.text() == "[Collapse]") || (expand == false) ) {
-    expandos.each(function(i) {
-      toggleInherited(this, false);
-    });
-    a.text("[Expand]");
-  }
-  return false;
-}
-
-/* Toggle all inherited members in the class (link in the class title)
- */
-function toggleAllClassInherited() {
-  var a = $("#toggleAllClassInherited"); // get toggle link from class title
-  var toggles = $(".toggle-all", $("#doc-content"));
-  if (a.text() == "[Expand All]") {
-    toggles.each(function(i) {
-      toggleAllInherited(this, true);
-    });
-    a.text("[Collapse All]");
-  } else {
-    toggles.each(function(i) {
-      toggleAllInherited(this, false);
-    });
-    a.text("[Expand All]");
-  }
-  return false;
-}
-
-/* Expand all inherited members in the class. Used when initiating page search */
-function ensureAllInheritedExpanded() {
-  var toggles = $(".toggle-all", $("#doc-content"));
-  toggles.each(function(i) {
-    toggleAllInherited(this, true);
-  });
-  $("#toggleAllClassInherited").text("[Collapse All]");
-}
-
-
-/* HANDLE KEY EVENTS
- * - Listen for Ctrl+F (Cmd on Mac) and expand all inherited members (to aid page search)
- */
-var agent = navigator['userAgent'].toLowerCase();
-var mac = agent.indexOf("macintosh") != -1;
-
-$(document).keydown( function(e) {
-var control = mac ? e.metaKey && !e.ctrlKey : e.ctrlKey; // get ctrl key
-  if (control && e.which == 70) {  // 70 is "F"
-    ensureAllInheritedExpanded();
-  }
-});
\ No newline at end of file
diff --git a/javadoc/assets/customizations.css b/javadoc/assets/customizations.css
deleted file mode 100755
index efe0770..0000000
--- a/javadoc/assets/customizations.css
+++ /dev/null
@@ -1,7 +0,0 @@
-#header {
-  border-bottom: 3px solid #0767a4;
-}
-
-#search_filtered .jd-selected {
-  background-color: #0767a4;
-}
\ No newline at end of file
diff --git a/javadoc/assets/customizations.js b/javadoc/assets/customizations.js
deleted file mode 100755
index e69de29..0000000
--- a/javadoc/assets/customizations.js
+++ /dev/null
diff --git a/javadoc/assets/images/bg_fade.jpg b/javadoc/assets/images/bg_fade.jpg
deleted file mode 100755
index c6c70b6..0000000
--- a/javadoc/assets/images/bg_fade.jpg
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/bg_logo.png b/javadoc/assets/images/bg_logo.png
deleted file mode 100755
index 8c57fc4..0000000
--- a/javadoc/assets/images/bg_logo.png
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/body-gradient-tab.png b/javadoc/assets/images/body-gradient-tab.png
deleted file mode 100755
index 5223ac3..0000000
--- a/javadoc/assets/images/body-gradient-tab.png
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/body-gradient.png b/javadoc/assets/images/body-gradient.png
deleted file mode 100755
index 9d598555..0000000
--- a/javadoc/assets/images/body-gradient.png
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/grad-rule-qv.png b/javadoc/assets/images/grad-rule-qv.png
deleted file mode 100755
index bae2d18..0000000
--- a/javadoc/assets/images/grad-rule-qv.png
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/hr_gray_main.jpg b/javadoc/assets/images/hr_gray_main.jpg
deleted file mode 100755
index f7a0a2f..0000000
--- a/javadoc/assets/images/hr_gray_main.jpg
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/hr_gray_side.jpg b/javadoc/assets/images/hr_gray_side.jpg
deleted file mode 100755
index 6667476..0000000
--- a/javadoc/assets/images/hr_gray_side.jpg
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/left_off.jpg b/javadoc/assets/images/left_off.jpg
deleted file mode 100755
index fd32a64..0000000
--- a/javadoc/assets/images/left_off.jpg
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/left_on.jpg b/javadoc/assets/images/left_on.jpg
deleted file mode 100755
index 143184b..0000000
--- a/javadoc/assets/images/left_on.jpg
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/preliminary.png b/javadoc/assets/images/preliminary.png
deleted file mode 100755
index fe0da3d..0000000
--- a/javadoc/assets/images/preliminary.png
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/resizable-e.gif b/javadoc/assets/images/resizable-e.gif
deleted file mode 100755
index f748097..0000000
--- a/javadoc/assets/images/resizable-e.gif
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/resizable-e2.gif b/javadoc/assets/images/resizable-e2.gif
deleted file mode 100755
index e45d0c5..0000000
--- a/javadoc/assets/images/resizable-e2.gif
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/resizable-eg.gif b/javadoc/assets/images/resizable-eg.gif
deleted file mode 100755
index 6196616..0000000
--- a/javadoc/assets/images/resizable-eg.gif
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/resizable-s.gif b/javadoc/assets/images/resizable-s.gif
deleted file mode 100755
index 7f6a4eb..0000000
--- a/javadoc/assets/images/resizable-s.gif
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/resizable-s2.gif b/javadoc/assets/images/resizable-s2.gif
deleted file mode 100755
index 99e869c..0000000
--- a/javadoc/assets/images/resizable-s2.gif
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/resizable-sg.gif b/javadoc/assets/images/resizable-sg.gif
deleted file mode 100755
index b4bea10..0000000
--- a/javadoc/assets/images/resizable-sg.gif
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/right_off.jpg b/javadoc/assets/images/right_off.jpg
deleted file mode 100755
index 17d2efe..0000000
--- a/javadoc/assets/images/right_off.jpg
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/right_on.jpg b/javadoc/assets/images/right_on.jpg
deleted file mode 100755
index baa2af1..0000000
--- a/javadoc/assets/images/right_on.jpg
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/sidenav-rule.png b/javadoc/assets/images/sidenav-rule.png
deleted file mode 100755
index eab9920..0000000
--- a/javadoc/assets/images/sidenav-rule.png
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/spacer.gif b/javadoc/assets/images/spacer.gif
deleted file mode 100755
index f96b355..0000000
--- a/javadoc/assets/images/spacer.gif
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/triangle-closed-small.png b/javadoc/assets/images/triangle-closed-small.png
deleted file mode 100755
index 002364a..0000000
--- a/javadoc/assets/images/triangle-closed-small.png
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/triangle-closed.png b/javadoc/assets/images/triangle-closed.png
deleted file mode 100755
index a34a055..0000000
--- a/javadoc/assets/images/triangle-closed.png
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/triangle-opened-small.png b/javadoc/assets/images/triangle-opened-small.png
deleted file mode 100755
index e1eb784..0000000
--- a/javadoc/assets/images/triangle-opened-small.png
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/images/triangle-opened.png b/javadoc/assets/images/triangle-opened.png
deleted file mode 100755
index a709604..0000000
--- a/javadoc/assets/images/triangle-opened.png
+++ /dev/null
Binary files differ
diff --git a/javadoc/assets/jquery-history.js b/javadoc/assets/jquery-history.js
deleted file mode 100755
index ef96ec3..0000000
--- a/javadoc/assets/jquery-history.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * jQuery history event v0.1
- * Copyright (c) 2008 Tom Rodenberg <tarodenberg gmail com>
- * Licensed under the GPL (http://www.gnu.org/licenses/gpl.html) license.
- */
-(function($) {
-    var currentHash, previousNav, timer, hashTrim = /^.*#/;
-
-    var msie = {
-        iframe: null,
-        getDoc: function() {
-            return msie.iframe.contentWindow.document;
-        },
-        getHash: function() {
-            return msie.getDoc().location.hash;
-        },
-        setHash: function(hash) {
-            var d = msie.getDoc();
-            d.open();
-            d.close();
-            d.location.hash = hash;
-        }
-    };
-
-    var historycheck = function() {
-        var hash = msie.iframe ? msie.getHash() : location.hash;
-        if (hash != currentHash) {
-            currentHash = hash;
-            if (msie.iframe) {
-                location.hash = currentHash;
-            }
-            var current = $.history.getCurrent();
-            $.event.trigger('history', [current, previousNav]);
-            previousNav = current;
-        }
-    };
-
-    $.history = {
-        add: function(hash) {
-            hash = '#' + hash.replace(hashTrim, '');
-            if (currentHash != hash) {
-                var previous = $.history.getCurrent();
-                location.hash = currentHash = hash;
-                if (msie.iframe) {
-                    msie.setHash(currentHash);
-                }
-                $.event.trigger('historyadd', [$.history.getCurrent(), previous]);
-            }
-            if (!timer) {
-                timer = setInterval(historycheck, 100);
-            }
-        },
-        getCurrent: function() {
-            if (currentHash) {
-              return currentHash.replace(hashTrim, '');
-            } else { 
-              return ""; 
-            }
-        }
-    };
-
-    $.fn.history = function(fn) {
-        $(this).bind('history', fn);
-    };
-
-    $.fn.historyadd = function(fn) {
-        $(this).bind('historyadd', fn);
-    };
-
-    $(function() {
-        currentHash = location.hash;
-        if ($.browser.msie) {
-            msie.iframe = $('<iframe style="display:none" src="javascript:false;"></iframe>').prependTo('body')[0];
-            msie.setHash(currentHash);
-            currentHash = msie.getHash();
-        }
-    });
-})(jQuery);
diff --git a/javadoc/assets/jquery-resizable.min.js b/javadoc/assets/jquery-resizable.min.js
deleted file mode 100755
index 67186fe..0000000
--- a/javadoc/assets/jquery-resizable.min.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * jQuery JavaScript Library v1.3.2
- * http://jquery.com/
- *
- * Copyright (c) 2009 John Resig
- * Dual licensed under the MIT and GPL licenses.
- * http://docs.jquery.com/License
- *
- * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
- * Revision: 6246
- */
-(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
-/*
- * Sizzle CSS Selector Engine - v0.9.3
- *  Copyright 2009, The Dojo Foundation
- *  Released under the MIT, BSD, and GPL Licenses.
- *  More information: http://sizzlejs.com/
- */
-(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
-/*
- * jQuery UI 1.7.2
- *
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI
- */
-jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m<n.length;m++){if(j.options[n[m][0]]){n[m][1].apply(j.element,k)}}}},contains:function(k,j){return document.compareDocumentPosition?k.compareDocumentPosition(j)&16:k!==j&&k.contains(j)},hasScroll:function(m,k){if(c(m).css("overflow")=="hidden"){return false}var j=(k&&k=="left")?"scrollLeft":"scrollTop",l=false;if(m[j]>0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/* * jQuery UI Resizable 1.7.2
- *
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Resizables
- *
- * Depends:
- *	ui.core.js
- */
-(function(c){c.widget("ui.resizable",c.extend({},c.ui.mouse,{_init:function(){var e=this,j=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(j.aspectRatio),aspectRatio:j.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:j.helper||j.ghost||j.animate?j.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){if(/relative/.test(this.element.css("position"))&&c.browser.opera){this.element.css({position:"relative",top:"auto",left:"auto"})}this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=j.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var k=this.handles.split(",");this.handles={};for(var f=0;f<k.length;f++){var h=c.trim(k[f]),d="ui-resizable-"+h;var g=c('<div class="ui-resizable-handle '+d+'"></div>');if(/sw|se|ne|nw/.test(h)){g.css({zIndex:++j.zIndex})}if("se"==h){g.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[h]=".ui-resizable-"+h;this.element.append(g)}}this._renderAxis=function(p){p=p||this.element;for(var m in this.handles){if(this.handles[m].constructor==String){this.handles[m]=c(this.handles[m],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var n=c(this.handles[m],this.element),o=0;o=/sw|ne|nw|se|n|s/.test(m)?n.outerHeight():n.outerWidth();var l=["padding",/ne|nw|n/.test(m)?"Top":/se|sw|s/.test(m)?"Bottom":/^e$/.test(m)?"Right":"Left"].join("");p.css(l,o);this._proportionallyResize()}if(!c(this.handles[m]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!e.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}e.axis=i&&i[1]?i[1]:"se"}});if(j.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){c(this).removeClass("ui-resizable-autohide");e._handles.show()},function(){if(!e.resizing){c(this).addClass("ui-resizable-autohide");e._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var d=function(f){c(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){d(this.element);var e=this.element;e.parent().append(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).end().remove()}this.originalElement.css("resize",this.originalResizeStyle);d(this.originalElement)},_mouseCapture:function(e){var f=false;for(var d in this.handles){if(c(this.handles[d])[0]==e.target){f=true}}return this.options.disabled||!!f},_mouseStart:function(f){var i=this.options,e=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(d.is(".ui-draggable")||(/absolute/).test(d.css("position"))){d.css({position:"absolute",top:e.top,left:e.left})}if(c.browser.opera&&(/relative/).test(d.css("position"))){d.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var j=b(this.helper.css("left")),g=b(this.helper.css("top"));if(i.containment){j+=c(i.containment).scrollLeft()||0;g+=c(i.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:j,top:g};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:j,top:g};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:f.pageX,top:f.pageY};this.aspectRatio=(typeof i.aspectRatio=="number")?i.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var h=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",h=="auto"?this.axis+"-resize":h);d.addClass("ui-resizable-resizing");this._propagate("start",f);return true},_mouseDrag:function(d){var g=this.helper,f=this.options,l={},p=this,i=this.originalMousePosition,m=this.axis;var q=(d.pageX-i.left)||0,n=(d.pageY-i.top)||0;var h=this._change[m];if(!h){return false}var k=h.apply(this,[d,q,n]),j=c.browser.msie&&c.browser.version<7,e=this.sizeDiff;if(this._aspectRatio||d.shiftKey){k=this._updateRatio(k,d)}k=this._respectSize(k,d);this._propagate("resize",d);g.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(k);this._trigger("resize",d,this.ui());return false},_mouseStop:function(g){this.resizing=false;var h=this.options,l=this;if(this._helper){var f=this._proportionallyResizeElements,d=f.length&&(/textarea/i).test(f[0].nodeName),e=d&&c.ui.hasScroll(f[0],"left")?0:l.sizeDiff.height,j=d?0:l.sizeDiff.width;var m={width:(l.size.width-j),height:(l.size.height-e)},i=(parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left))||null,k=(parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top))||null;if(!h.animate){this.element.css(c.extend(m,{top:k,left:i}))}l.helper.height(l.size.height);l.helper.width(l.size.width);if(this._helper&&!h.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",g);if(this._helper){this.helper.remove()}return false},_updateCache:function(d){var e=this.options;this.offset=this.helper.offset();if(a(d.left)){this.position.left=d.left}if(a(d.top)){this.position.top=d.top}if(a(d.height)){this.size.height=d.height}if(a(d.width)){this.size.width=d.width}},_updateRatio:function(g,f){var h=this.options,i=this.position,e=this.size,d=this.axis;if(g.height){g.width=(e.height*this.aspectRatio)}else{if(g.width){g.height=(e.width/this.aspectRatio)}}if(d=="sw"){g.left=i.left+(e.width-g.width);g.top=null}if(d=="nw"){g.top=i.top+(e.height-g.height);g.left=i.left+(e.width-g.width)}return g},_respectSize:function(k,f){var i=this.helper,h=this.options,q=this._aspectRatio||f.shiftKey,p=this.axis,s=a(k.width)&&h.maxWidth&&(h.maxWidth<k.width),l=a(k.height)&&h.maxHeight&&(h.maxHeight<k.height),g=a(k.width)&&h.minWidth&&(h.minWidth>k.width),r=a(k.height)&&h.minHeight&&(h.minHeight>k.height);if(g){k.width=h.minWidth}if(r){k.height=h.minHeight}if(s){k.width=h.maxWidth}if(l){k.height=h.maxHeight}var e=this.originalPosition.left+this.originalSize.width,n=this.position.top+this.size.height;var j=/sw|nw|w/.test(p),d=/nw|ne|n/.test(p);if(g&&j){k.left=e-h.minWidth}if(s&&j){k.left=e-h.maxWidth}if(r&&d){k.top=n-h.minHeight}if(l&&d){k.top=n-h.maxHeight}var m=!k.width&&!k.height;if(m&&!k.left&&k.top){k.top=null}else{if(m&&!k.top&&k.left){k.left=null}}return k},_proportionallyResize:function(){var j=this.options;if(!this._proportionallyResizeElements.length){return}var f=this.helper||this.element;for(var e=0;e<this._proportionallyResizeElements.length;e++){var g=this._proportionallyResizeElements[e];if(!this.borderDif){var d=[g.css("borderTopWidth"),g.css("borderRightWidth"),g.css("borderBottomWidth"),g.css("borderLeftWidth")],h=[g.css("paddingTop"),g.css("paddingRight"),g.css("paddingBottom"),g.css("paddingLeft")];this.borderDif=c.map(d,function(k,m){var l=parseInt(k,10)||0,n=parseInt(h[m],10)||0;return l+n})}if(c.browser.msie&&!(!(c(f).is(":hidden")||c(f).parents(":hidden").length))){continue}g.css({height:(f.height()-this.borderDif[0]-this.borderDif[2])||0,width:(f.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var e=this.element,h=this.options;this.elementOffset=e.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var d=c.browser.msie&&c.browser.version<7,f=(d?1:0),g=(d?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+g,height:this.element.outerHeight()+g,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++h.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(f,e,d){return{width:this.originalSize.width+e}},w:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{left:h.left+e,width:f.width-e}},n:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{top:h.top+d,height:f.height-d}},s:function(f,e,d){return{height:this.originalSize.height+d}},se:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},sw:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[f,e,d]))},ne:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},nw:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[f,e,d]))}},_propagate:function(e,d){c.ui.plugin.call(this,e,[d,this.ui()]);(e!="resize"&&this._trigger(e,d,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));c.extend(c.ui.resizable,{version:"1.7.2",eventPrefix:"resize",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input,option",containment:false,delay:0,distance:1,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000}});c.ui.plugin.add("resizable","alsoResize",{start:function(e,f){var d=c(this).data("resizable"),g=d.options;_store=function(h){c(h).each(function(){c(this).data("resizable-alsoresize",{width:parseInt(c(this).width(),10),height:parseInt(c(this).height(),10),left:parseInt(c(this).css("left"),10),top:parseInt(c(this).css("top"),10)})})};if(typeof(g.alsoResize)=="object"&&!g.alsoResize.parentNode){if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];_store(g.alsoResize)}else{c.each(g.alsoResize,function(h,i){_store(h)})}}else{_store(g.alsoResize)}},resize:function(f,h){var e=c(this).data("resizable"),i=e.options,g=e.originalSize,k=e.originalPosition;var j={height:(e.size.height-g.height)||0,width:(e.size.width-g.width)||0,top:(e.position.top-k.top)||0,left:(e.position.left-k.left)||0},d=function(l,m){c(l).each(function(){var p=c(this),q=c(this).data("resizable-alsoresize"),o={},n=m&&m.length?m:["width","height","top","left"];c.each(n||["width","height","top","left"],function(r,t){var s=(q[t]||0)+(j[t]||0);if(s&&s>=0){o[t]=s||null}});if(/relative/.test(p.css("position"))&&c.browser.opera){e._revertToRelativePosition=true;p.css({position:"absolute",top:"auto",left:"auto"})}p.css(o)})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.nodeType){c.each(i.alsoResize,function(l,m){d(l,m)})}else{d(i.alsoResize)}},stop:function(e,f){var d=c(this).data("resizable");if(d._revertToRelativePosition&&c.browser.opera){d._revertToRelativePosition=false;el.css({position:"relative"})}c(this).removeData("resizable-alsoresize-start")}});c.ui.plugin.add("resizable","animate",{stop:function(h,m){var n=c(this).data("resizable"),i=n.options;var g=n._proportionallyResizeElements,d=g.length&&(/textarea/i).test(g[0].nodeName),e=d&&c.ui.hasScroll(g[0],"left")?0:n.sizeDiff.height,k=d?0:n.sizeDiff.width;var f={width:(n.size.width-k),height:(n.size.height-e)},j=(parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left))||null,l=(parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top))||null;n.element.animate(c.extend(f,l&&j?{top:l,left:j}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var o={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};if(g&&g.length){c(g[0]).css({width:o.width,height:o.height})}n._updateCache(o);n._propagate("resize",h)}})}});c.ui.plugin.add("resizable","containment",{start:function(e,q){var s=c(this).data("resizable"),i=s.options,k=s.element;var f=i.containment,j=(f instanceof c)?f.get(0):(/parent/.test(f))?k.parent().get(0):f;if(!j){return}s.containerElement=c(j);if(/document/.test(f)||f==document){s.containerOffset={left:0,top:0};s.containerPosition={left:0,top:0};s.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var m=c(j),h=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){h[p]=b(m.css("padding"+o))});s.containerOffset=m.offset();s.containerPosition=m.position();s.containerSize={height:(m.innerHeight()-h[3]),width:(m.innerWidth()-h[1])};var n=s.containerOffset,d=s.containerSize.height,l=s.containerSize.width,g=(c.ui.hasScroll(j,"left")?j.scrollWidth:l),r=(c.ui.hasScroll(j)?j.scrollHeight:d);s.parentData={element:j,left:n.left,top:n.top,width:g,height:r}}},resize:function(f,p){var s=c(this).data("resizable"),h=s.options,e=s.containerSize,n=s.containerOffset,l=s.size,m=s.position,q=s._aspectRatio||f.shiftKey,d={top:0,left:0},g=s.containerElement;if(g[0]!=document&&(/static/).test(g.css("position"))){d=n}if(m.left<(s._helper?n.left:0)){s.size.width=s.size.width+(s._helper?(s.position.left-n.left):(s.position.left-d.left));if(q){s.size.height=s.size.width/h.aspectRatio}s.position.left=h.helper?n.left:0}if(m.top<(s._helper?n.top:0)){s.size.height=s.size.height+(s._helper?(s.position.top-n.top):s.position.top);if(q){s.size.width=s.size.height*h.aspectRatio}s.position.top=s._helper?n.top:0}s.offset.left=s.parentData.left+s.position.left;s.offset.top=s.parentData.top+s.position.top;var k=Math.abs((s._helper?s.offset.left-d.left:(s.offset.left-d.left))+s.sizeDiff.width),r=Math.abs((s._helper?s.offset.top-d.top:(s.offset.top-n.top))+s.sizeDiff.height);var j=s.containerElement.get(0)==s.element.parent().get(0),i=/relative|absolute/.test(s.containerElement.css("position"));if(j&&i){k-=s.parentData.left}if(k+s.size.width>=s.parentData.width){s.size.width=s.parentData.width-k;if(q){s.size.height=s.size.width/s.aspectRatio}}if(r+s.size.height>=s.parentData.height){s.size.height=s.parentData.height-r;if(q){s.size.width=s.size.height*s.aspectRatio}}},stop:function(e,m){var p=c(this).data("resizable"),f=p.options,k=p.position,l=p.containerOffset,d=p.containerPosition,g=p.containerElement;var i=c(p.helper),q=i.offset(),n=i.outerWidth()-p.sizeDiff.width,j=i.outerHeight()-p.sizeDiff.height;if(p._helper&&!f.animate&&(/relative/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}if(p._helper&&!f.animate&&(/static/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}}});c.ui.plugin.add("resizable","ghost",{start:function(f,g){var d=c(this).data("resizable"),h=d.options,e=d.size;d.ghost=d.originalElement.clone();d.ghost.css({opacity:0.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof h.ghost=="string"?h.ghost:"");d.ghost.appendTo(d.helper)},resize:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost){d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})}},stop:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost&&d.helper){d.helper.get(0).removeChild(d.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(d,l){var n=c(this).data("resizable"),g=n.options,j=n.size,h=n.originalSize,i=n.originalPosition,m=n.axis,k=g._aspectRatio||d.shiftKey;g.grid=typeof g.grid=="number"?[g.grid,g.grid]:g.grid;var f=Math.round((j.width-h.width)/(g.grid[0]||1))*(g.grid[0]||1),e=Math.round((j.height-h.height)/(g.grid[1]||1))*(g.grid[1]||1);if(/^(se|s|e)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e}else{if(/^(ne)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e}else{if(/^(sw)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.left=i.left-f}else{n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e;n.position.left=i.left-f}}}}});var b=function(d){return parseInt(d,10)||0};var a=function(d){return !isNaN(parseInt(d,10))}})(jQuery);;
diff --git a/javadoc/assets/microtemplate.js b/javadoc/assets/microtemplate.js
deleted file mode 100755
index ada1235..0000000
--- a/javadoc/assets/microtemplate.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Simple JavaScript Templating
-// John Resig - http://ejohn.org/ - MIT Licensed
-(function(){
-  var cache = {};
-
-  this.tmpl = function tmpl(str, data){
-    // Figure out if we're getting a template, or if we need to
-    // load the template - and be sure to cache the result.
-    var fn = !/\W/.test(str) ?
-      cache[str] = cache[str] ||
-        tmpl(document.getElementById(str).innerHTML) :
-
-      // Generate a reusable function that will serve as a template
-      // generator (and which will be cached).
-      new Function("obj",
-        "var p=[],print=function(){p.push.apply(p,arguments);};" +
-
-        // Introduce the data as local variables using with(){}
-        "with(obj){p.push('" +
-
-        // Convert the template into pure JavaScript
-        str
-          .replace(/[\r\t\n]/g, " ")
-          .split("<%").join("\t")
-          .replace(/((^|%>)[^\t]*)'/g, "$1\r")
-          .replace(/\t=(.*?)%>/g, "',$1,'")
-          .split("\t").join("');")
-          .split("%>").join("p.push('")
-          .split("\r").join("\\'")
-      + "');}return p.join('');");
-
-    // Provide some basic currying to the user
-    return data ? fn( data ) : fn;
-  };
-})();
\ No newline at end of file
diff --git a/javadoc/assets/navtree_data.js b/javadoc/assets/navtree_data.js
deleted file mode 100755
index c499302..0000000
--- a/javadoc/assets/navtree_data.js
+++ /dev/null
@@ -1,66 +0,0 @@
-var NAVTREE_DATA =
-[ [ "com.google.inject", "com/google/inject/package-summary.html", [ [ "Description", "com/google/inject/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "Binder", "com/google/inject/Binder.html", null, "Guice_1.0" ], [ "Binding", "com/google/inject/Binding.html", null, "Guice_1.0" ], [ "Injector", "com/google/inject/Injector.html", null, "Guice_1.0" ], [ "MembersInjector", "com/google/inject/MembersInjector.html", null, "Guice_2.0" ], [ "Module", "com/google/inject/Module.html", null, "Guice_1.0" ], [ "PrivateBinder", "com/google/inject/PrivateBinder.html", null, "Guice_2.0" ], [ "Provider", "com/google/inject/Provider.html", null, "Guice_1.0" ], [ "Scope", "com/google/inject/Scope.html", null, "Guice_1.0" ] ]
-, "" ], [ "Classes", null, [ [ "AbstractModule", "com/google/inject/AbstractModule.html", null, "Guice_1.0" ], [ "Guice", "com/google/inject/Guice.html", null, "Guice_1.0" ], [ "Key", "com/google/inject/Key.html", null, "Guice_1.0" ], [ "PrivateModule", "com/google/inject/PrivateModule.html", null, "Guice_2.0" ], [ "Scopes", "com/google/inject/Scopes.html", null, "Guice_1.0" ], [ "TypeLiteral", "com/google/inject/TypeLiteral.html", null, "Guice_1.0" ] ]
-, "" ], [ "Annotations", null, [ [ "BindingAnnotation", "com/google/inject/BindingAnnotation.html", null, "Guice_1.0" ], [ "Exposed", "com/google/inject/Exposed.html", null, "Guice_2.0" ], [ "ImplementedBy", "com/google/inject/ImplementedBy.html", null, "Guice_1.0" ], [ "Inject", "com/google/inject/Inject.html", null, "Guice_1.0" ], [ "ProvidedBy", "com/google/inject/ProvidedBy.html", null, "Guice_1.0" ], [ "Provides", "com/google/inject/Provides.html", null, "Guice_2.0" ], [ "ScopeAnnotation", "com/google/inject/ScopeAnnotation.html", null, "Guice_1.0" ], [ "Singleton", "com/google/inject/Singleton.html", null, "Guice_1.0" ] ]
-, "" ], [ "Enums", null, [ [ "Stage", "com/google/inject/Stage.html", null, "Guice_1.0" ] ]
-, "" ], [ "Exceptions", null, [ [ "ConfigurationException", "com/google/inject/ConfigurationException.html", null, "Guice_2.0" ], [ "CreationException", "com/google/inject/CreationException.html", null, "Guice_1.0" ], [ "OutOfScopeException", "com/google/inject/OutOfScopeException.html", null, "Guice_2.0" ], [ "ProvisionException", "com/google/inject/ProvisionException.html", null, "Guice_2.0" ] ]
-, "" ] ]
-, "Guice_1.0" ], [ "com.google.inject.assistedinject", "com/google/inject/assistedinject/package-summary.html", [ [ "Description", "com/google/inject/assistedinject/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "AssistedInjectBinding", "com/google/inject/assistedinject/AssistedInjectBinding.html", null, "Guice_3.0" ], [ "AssistedInjectTargetVisitor", "com/google/inject/assistedinject/AssistedInjectTargetVisitor.html", null, "Guice_3.0" ], [ "AssistedMethod", "com/google/inject/assistedinject/AssistedMethod.html", null, "Guice_3.0" ] ]
-, "" ], [ "Classes", null, [ [ "FactoryModuleBuilder", "com/google/inject/assistedinject/FactoryModuleBuilder.html", null, "Guice_3.0" ], [ "FactoryProvider", "com/google/inject/assistedinject/FactoryProvider.html", null, "Guice_2.0" ] ]
-, "" ], [ "Annotations", null, [ [ "Assisted", "com/google/inject/assistedinject/Assisted.html", null, "Guice_2.0" ], [ "AssistedInject", "com/google/inject/assistedinject/AssistedInject.html", null, "Guice_2.0" ] ]
-, "" ] ]
-, "Guice_2.0" ], [ "com.google.inject.binder", "com/google/inject/binder/package-summary.html", [ [ "Description", "com/google/inject/binder/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "AnnotatedBindingBuilder", "com/google/inject/binder/AnnotatedBindingBuilder.html", null, "Guice_1.0" ], [ "AnnotatedConstantBindingBuilder", "com/google/inject/binder/AnnotatedConstantBindingBuilder.html", null, "Guice_1.0" ], [ "AnnotatedElementBuilder", "com/google/inject/binder/AnnotatedElementBuilder.html", null, "Guice_2.0" ], [ "ConstantBindingBuilder", "com/google/inject/binder/ConstantBindingBuilder.html", null, "Guice_1.0" ], [ "LinkedBindingBuilder", "com/google/inject/binder/LinkedBindingBuilder.html", null, "Guice_1.0" ], [ "ScopedBindingBuilder", "com/google/inject/binder/ScopedBindingBuilder.html", null, "Guice_1.0" ] ]
-, "" ] ]
-, "Guice_1.0" ], [ "com.google.inject.grapher", "com/google/inject/grapher/package-summary.html", [ [ "Description", "com/google/inject/grapher/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "BindingEdge", "com/google/inject/grapher/BindingEdge.html", null, "Guice_3.0" ], [ "BindingEdge.Factory", "com/google/inject/grapher/BindingEdge.Factory.html", null, "Guice_3.0" ], [ "DependencyEdge", "com/google/inject/grapher/DependencyEdge.html", null, "Guice_3.0" ], [ "DependencyEdge.Factory", "com/google/inject/grapher/DependencyEdge.Factory.html", null, "Guice_3.0" ], [ "ImplementationNode", "com/google/inject/grapher/ImplementationNode.html", null, "Guice_3.0" ], [ "ImplementationNode.Factory", "com/google/inject/grapher/ImplementationNode.Factory.html", null, "Guice_3.0" ], [ "InterfaceNode", "com/google/inject/grapher/InterfaceNode.html", null, "Guice_3.0" ], [ "InterfaceNode.Factory", "com/google/inject/grapher/InterfaceNode.Factory.html", null, "Guice_3.0" ], [ "NameFactory", "com/google/inject/grapher/NameFactory.html", null, "Guice_3.0" ], [ "NodeAliasFactory", "com/google/inject/grapher/NodeAliasFactory.html", null, "Guice_3.0" ], [ "NodeIdFactory", "com/google/inject/grapher/NodeIdFactory.html", null, "Guice_3.0" ], [ "Renderer", "com/google/inject/grapher/Renderer.html", null, "Guice_3.0" ] ]
-, "" ], [ "Classes", null, [ [ "GrapherModule", "com/google/inject/grapher/GrapherModule.html", null, "Guice_3.0" ], [ "GraphingVisitor", "com/google/inject/grapher/GraphingVisitor.html", null, "Guice_3.0" ], [ "InjectorGrapher", "com/google/inject/grapher/InjectorGrapher.html", null, "Guice_3.0" ], [ "ShortNameFactory", "com/google/inject/grapher/ShortNameFactory.html", null, "Guice_3.0" ], [ "StringNodeIdFactory", "com/google/inject/grapher/StringNodeIdFactory.html", null, "Guice_3.0" ], [ "TransitiveDependencyVisitor", "com/google/inject/grapher/TransitiveDependencyVisitor.html", null, "Guice_3.0" ] ]
-, "" ], [ "Enums", null, [ [ "BindingEdge.Type", "com/google/inject/grapher/BindingEdge.Type.html", null, "Guice_3.0" ] ]
-, "" ] ]
-, "Guice_3.0" ], [ "com.google.inject.grapher.graphviz", "com/google/inject/grapher/graphviz/package-summary.html", [ [ "Description", "com/google/inject/grapher/graphviz/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "PortIdFactory", "com/google/inject/grapher/graphviz/PortIdFactory.html", null, "Guice_3.0" ] ]
-, "" ], [ "Classes", null, [ [ "BindingEdgeFactory", "com/google/inject/grapher/graphviz/BindingEdgeFactory.html", null, "Guice_3.0" ], [ "BindingEdgeFactory.GraphvizEdgeAdaptor", "com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html", null, "Guice_3.0" ], [ "DependencyEdgeFactory", "com/google/inject/grapher/graphviz/DependencyEdgeFactory.html", null, "Guice_3.0" ], [ "DependencyEdgeFactory.GraphvizEdgeAdaptor", "com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html", null, "Guice_3.0" ], [ "GraphvizEdge", "com/google/inject/grapher/graphviz/GraphvizEdge.html", null, "Guice_3.0" ], [ "GraphvizModule", "com/google/inject/grapher/graphviz/GraphvizModule.html", null, "Guice_3.0" ], [ "GraphvizNode", "com/google/inject/grapher/graphviz/GraphvizNode.html", null, "Guice_3.0" ], [ "GraphvizRenderer", "com/google/inject/grapher/graphviz/GraphvizRenderer.html", null, "Guice_3.0" ], [ "ImplementationNodeFactory", "com/google/inject/grapher/graphviz/ImplementationNodeFactory.html", null, "Guice_3.0" ], [ "ImplementationNodeFactory.GraphvizNodeAdaptor", "com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html", null, "Guice_3.0" ], [ "InterfaceNodeFactory", "com/google/inject/grapher/graphviz/InterfaceNodeFactory.html", null, "Guice_3.0" ], [ "InterfaceNodeFactory.GraphvizNodeAdaptor", "com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html", null, "Guice_3.0" ], [ "PortIdFactoryImpl", "com/google/inject/grapher/graphviz/PortIdFactoryImpl.html", null, "Guice_3.0" ] ]
-, "" ], [ "Enums", null, [ [ "ArrowType", "com/google/inject/grapher/graphviz/ArrowType.html", null, "Guice_3.0" ], [ "CompassPoint", "com/google/inject/grapher/graphviz/CompassPoint.html", null, "Guice_3.0" ], [ "EdgeStyle", "com/google/inject/grapher/graphviz/EdgeStyle.html", null, "Guice_3.0" ], [ "NodeShape", "com/google/inject/grapher/graphviz/NodeShape.html", null, "Guice_3.0" ], [ "NodeStyle", "com/google/inject/grapher/graphviz/NodeStyle.html", null, "Guice_3.0" ] ]
-, "" ] ]
-, "Guice_3.0" ], [ "com.google.inject.jndi", "com/google/inject/jndi/package-summary.html", [ [ "Description", "com/google/inject/jndi/package-descr.html", null, "" ], [ "Classes", null, [ [ "JndiIntegration", "com/google/inject/jndi/JndiIntegration.html", null, "Guice_1.0" ] ]
-, "" ] ]
-, "Guice_1.0" ], [ "com.google.inject.matcher", "com/google/inject/matcher/package-summary.html", [ [ "Description", "com/google/inject/matcher/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "Matcher", "com/google/inject/matcher/Matcher.html", null, "Guice_1.0" ] ]
-, "" ], [ "Classes", null, [ [ "AbstractMatcher", "com/google/inject/matcher/AbstractMatcher.html", null, "Guice_1.0" ], [ "Matchers", "com/google/inject/matcher/Matchers.html", null, "Guice_1.0" ] ]
-, "" ] ]
-, "Guice_1.0" ], [ "com.google.inject.multibindings", "com/google/inject/multibindings/package-summary.html", [ [ "Description", "com/google/inject/multibindings/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "MapBinderBinding", "com/google/inject/multibindings/MapBinderBinding.html", null, "Guice_3.0" ], [ "MultibinderBinding", "com/google/inject/multibindings/MultibinderBinding.html", null, "Guice_3.0" ], [ "MultibindingsTargetVisitor", "com/google/inject/multibindings/MultibindingsTargetVisitor.html", null, "Guice_3.0" ] ]
-, "" ], [ "Classes", null, [ [ "MapBinder", "com/google/inject/multibindings/MapBinder.html", null, "Guice_2.0" ], [ "Multibinder", "com/google/inject/multibindings/Multibinder.html", null, "Guice_2.0" ] ]
-, "" ] ]
-, "Guice_2.0" ], [ "com.google.inject.name", "com/google/inject/name/package-summary.html", [ [ "Description", "com/google/inject/name/package-descr.html", null, "" ], [ "Classes", null, [ [ "Names", "com/google/inject/name/Names.html", null, "Guice_1.0" ] ]
-, "" ], [ "Annotations", null, [ [ "Named", "com/google/inject/name/Named.html", null, "Guice_1.0" ] ]
-, "" ] ]
-, "Guice_1.0" ], [ "com.google.inject.persist", "com/google/inject/persist/package-summary.html", [ [ "Description", "com/google/inject/persist/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "PersistService", "com/google/inject/persist/PersistService.html", null, "Guice_3.0" ], [ "UnitOfWork", "com/google/inject/persist/UnitOfWork.html", null, "Guice_3.0" ] ]
-, "" ], [ "Classes", null, [ [ "PersistFilter", "com/google/inject/persist/PersistFilter.html", null, "Guice_3.0" ], [ "PersistModule", "com/google/inject/persist/PersistModule.html", null, "Guice_3.0" ] ]
-, "" ], [ "Annotations", null, [ [ "Transactional", "com/google/inject/persist/Transactional.html", null, "Guice_3.0" ] ]
-, "" ] ]
-, "Guice_3.0" ], [ "com.google.inject.persist.finder", "com/google/inject/persist/finder/package-summary.html", [ [ "Description", "com/google/inject/persist/finder/package-descr.html", null, "" ], [ "Classes", null, [ [ "DynamicFinder", "com/google/inject/persist/finder/DynamicFinder.html", null, "Guice_3.0" ] ]
-, "" ], [ "Annotations", null, [ [ "Finder", "com/google/inject/persist/finder/Finder.html", null, "Guice_3.0" ], [ "FirstResult", "com/google/inject/persist/finder/FirstResult.html", null, "Guice_3.0" ], [ "MaxResults", "com/google/inject/persist/finder/MaxResults.html", null, "Guice_3.0" ] ]
-, "" ] ]
-, "Guice_3.0" ], [ "com.google.inject.persist.jpa", "com/google/inject/persist/jpa/package-summary.html", [ [ "Description", "com/google/inject/persist/jpa/package-descr.html", null, "" ], [ "Classes", null, [ [ "JpaPersistModule", "com/google/inject/persist/jpa/JpaPersistModule.html", null, "Guice_3.0" ] ]
-, "" ] ]
-, "Guice_3.0" ], [ "com.google.inject.servlet", "com/google/inject/servlet/package-summary.html", [ [ "Description", "com/google/inject/servlet/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "InstanceFilterBinding", "com/google/inject/servlet/InstanceFilterBinding.html", null, "Guice_3.0" ], [ "InstanceServletBinding", "com/google/inject/servlet/InstanceServletBinding.html", null, "Guice_3.0" ], [ "LinkedFilterBinding", "com/google/inject/servlet/LinkedFilterBinding.html", null, "Guice_3.0" ], [ "LinkedServletBinding", "com/google/inject/servlet/LinkedServletBinding.html", null, "Guice_3.0" ], [ "ServletModule.FilterKeyBindingBuilder", "com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html", null, "Guice_2.0" ], [ "ServletModule.ServletKeyBindingBuilder", "com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html", null, "Guice_2.0" ], [ "ServletModuleBinding", "com/google/inject/servlet/ServletModuleBinding.html", null, "Guice_3.0" ], [ "ServletModuleTargetVisitor", "com/google/inject/servlet/ServletModuleTargetVisitor.html", null, "Guice_3.0" ] ]
-, "" ], [ "Classes", null, [ [ "GuiceFilter", "com/google/inject/servlet/GuiceFilter.html", null, "Guice_1.0" ], [ "GuiceServletContextListener", "com/google/inject/servlet/GuiceServletContextListener.html", null, "Guice_2.0" ], [ "ServletModule", "com/google/inject/servlet/ServletModule.html", null, "Guice_1.0" ], [ "ServletScopes", "com/google/inject/servlet/ServletScopes.html", null, "Guice_1.0" ] ]
-, "" ], [ "Annotations", null, [ [ "RequestParameters", "com/google/inject/servlet/RequestParameters.html", null, "Guice_1.0" ], [ "RequestScoped", "com/google/inject/servlet/RequestScoped.html", null, "Guice_1.0" ], [ "SessionScoped", "com/google/inject/servlet/SessionScoped.html", null, "Guice_1.0" ] ]
-, "" ], [ "Enums", null, [ [ "UriPatternType", "com/google/inject/servlet/UriPatternType.html", null, "Guice_3.0" ] ]
-, "" ] ]
-, "Guice_1.0" ], [ "com.google.inject.spi", "com/google/inject/spi/package-summary.html", [ [ "Description", "com/google/inject/spi/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "BindingScopingVisitor", "com/google/inject/spi/BindingScopingVisitor.html", null, "Guice_2.0" ], [ "BindingTargetVisitor", "com/google/inject/spi/BindingTargetVisitor.html", null, "Guice_2.0" ], [ "ConstructorBinding", "com/google/inject/spi/ConstructorBinding.html", null, "Guice_2.0" ], [ "ConvertedConstantBinding", "com/google/inject/spi/ConvertedConstantBinding.html", null, "Guice_2.0" ], [ "Element", "com/google/inject/spi/Element.html", null, "Guice_2.0" ], [ "ElementVisitor", "com/google/inject/spi/ElementVisitor.html", null, "Guice_2.0" ], [ "ExposedBinding", "com/google/inject/spi/ExposedBinding.html", null, "Guice_2.0" ], [ "HasDependencies", "com/google/inject/spi/HasDependencies.html", null, "Guice_2.0" ], [ "InjectionListener", "com/google/inject/spi/InjectionListener.html", null, "Guice_2.0" ], [ "InstanceBinding", "com/google/inject/spi/InstanceBinding.html", null, "Guice_2.0" ], [ "LinkedKeyBinding", "com/google/inject/spi/LinkedKeyBinding.html", null, "Guice_2.0" ], [ "PrivateElements", "com/google/inject/spi/PrivateElements.html", null, "Guice_2.0" ], [ "ProviderBinding", "com/google/inject/spi/ProviderBinding.html", null, "Guice_2.0" ], [ "ProviderInstanceBinding", "com/google/inject/spi/ProviderInstanceBinding.html", null, "Guice_2.0" ], [ "ProviderKeyBinding", "com/google/inject/spi/ProviderKeyBinding.html", null, "Guice_2.0" ], [ "ProviderWithDependencies", "com/google/inject/spi/ProviderWithDependencies.html", null, "Guice_2.0" ], [ "ProviderWithExtensionVisitor", "com/google/inject/spi/ProviderWithExtensionVisitor.html", null, "Guice_3.0" ], [ "TypeConverter", "com/google/inject/spi/TypeConverter.html", null, "Guice_2.0" ], [ "TypeEncounter", "com/google/inject/spi/TypeEncounter.html", null, "Guice_2.0" ], [ "TypeListener", "com/google/inject/spi/TypeListener.html", null, "Guice_2.0" ], [ "UntargettedBinding", "com/google/inject/spi/UntargettedBinding.html", null, "Guice_2.0" ] ]
-, "" ], [ "Classes", null, [ [ "DefaultBindingScopingVisitor", "com/google/inject/spi/DefaultBindingScopingVisitor.html", null, "Guice_2.0" ], [ "DefaultBindingTargetVisitor", "com/google/inject/spi/DefaultBindingTargetVisitor.html", null, "Guice_2.0" ], [ "DefaultElementVisitor", "com/google/inject/spi/DefaultElementVisitor.html", null, "Guice_2.0" ], [ "Dependency", "com/google/inject/spi/Dependency.html", null, "Guice_2.0" ], [ "DisableCircularProxiesOption", "com/google/inject/spi/DisableCircularProxiesOption.html", null, "Guice_3.0" ], [ "Elements", "com/google/inject/spi/Elements.html", null, "Guice_2.0" ], [ "InjectionPoint", "com/google/inject/spi/InjectionPoint.html", null, "Guice_2.0" ], [ "InjectionRequest", "com/google/inject/spi/InjectionRequest.html", null, "Guice_2.0" ], [ "InterceptorBinding", "com/google/inject/spi/InterceptorBinding.html", null, "Guice_2.0" ], [ "MembersInjectorLookup", "com/google/inject/spi/MembersInjectorLookup.html", null, "Guice_2.0" ], [ "Message", "com/google/inject/spi/Message.html", null, "Guice_1.0" ], [ "ProviderLookup", "com/google/inject/spi/ProviderLookup.html", null, "Guice_2.0" ], [ "RequireExplicitBindingsOption", "com/google/inject/spi/RequireExplicitBindingsOption.html", null, "Guice_3.0" ], [ "ScopeBinding", "com/google/inject/spi/ScopeBinding.html", null, "Guice_2.0" ], [ "StaticInjectionRequest", "com/google/inject/spi/StaticInjectionRequest.html", null, "Guice_2.0" ], [ "TypeConverterBinding", "com/google/inject/spi/TypeConverterBinding.html", null, "Guice_2.0" ], [ "TypeListenerBinding", "com/google/inject/spi/TypeListenerBinding.html", null, "Guice_2.0" ] ]
-, "" ], [ "Annotations", null, [ [ "Toolable", "com/google/inject/spi/Toolable.html", null, "Guice_3.0" ] ]
-, "" ] ]
-, "Guice_1.0" ], [ "com.google.inject.spring", "com/google/inject/spring/package-summary.html", [ [ "Description", "com/google/inject/spring/package-descr.html", null, "" ], [ "Classes", null, [ [ "SpringIntegration", "com/google/inject/spring/SpringIntegration.html", null, "Guice_2.0" ] ]
-, "" ] ]
-, "Guice_2.0" ], [ "com.google.inject.throwingproviders", "com/google/inject/throwingproviders/package-summary.html", [ [ "Description", "com/google/inject/throwingproviders/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "CheckedProvider", "com/google/inject/throwingproviders/CheckedProvider.html", null, "Guice_3.0" ], [ "ThrowingProvider", "com/google/inject/throwingproviders/ThrowingProvider.html", null, "Guice_2.0" ] ]
-, "" ], [ "Classes", null, [ [ "ThrowingProviderBinder", "com/google/inject/throwingproviders/ThrowingProviderBinder.html", null, "Guice_2.0" ], [ "ThrowingProviderBinder.SecondaryBinder", "com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html", null, "Guice_2.0" ] ]
-, "" ], [ "Annotations", null, [ [ "CheckedProvides", "com/google/inject/throwingproviders/CheckedProvides.html", null, "Guice_3.0" ] ]
-, "" ] ]
-, "Guice_2.0" ], [ "com.google.inject.tools.jmx", "com/google/inject/tools/jmx/package-summary.html", [ [ "Description", "com/google/inject/tools/jmx/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "ManagedBindingMBean", "com/google/inject/tools/jmx/ManagedBindingMBean.html", null, "Guice_1.0" ] ]
-, "" ], [ "Classes", null, [ [ "Manager", "com/google/inject/tools/jmx/Manager.html", null, "Guice_1.0" ] ]
-, "" ] ]
-, "Guice_1.0" ], [ "com.google.inject.util", "com/google/inject/util/package-summary.html", [ [ "Description", "com/google/inject/util/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "Modules.OverriddenModuleBuilder", "com/google/inject/util/Modules.OverriddenModuleBuilder.html", null, "Guice_2.0" ] ]
-, "" ], [ "Classes", null, [ [ "Modules", "com/google/inject/util/Modules.html", null, "Guice_2.0" ], [ "Providers", "com/google/inject/util/Providers.html", null, "Guice_2.0" ], [ "Types", "com/google/inject/util/Types.html", null, "Guice_2.0" ] ]
-, "" ] ]
-, "Guice_2.0" ] ]
-
-;
-
diff --git a/javadoc/assets/prettify.js b/javadoc/assets/prettify.js
deleted file mode 100755
index 076f9d0..0000000
--- a/javadoc/assets/prettify.js
+++ /dev/null
@@ -1,33 +0,0 @@
-(function(){
-var o=true,r=null,z=false;window.PR_SHOULD_USE_CONTINUATION=o;window.PR_TAB_WIDTH=8;window.PR_normalizedHtml=window.PR=window.prettyPrintOne=window.prettyPrint=void 0;window._pr_isIE6=function(){var N=navigator&&navigator.userAgent&&/\bMSIE 6\./.test(navigator.userAgent);window._pr_isIE6=function(){return N};return N};
-var aa="!",ba="!=",ca="!==",F="#",da="%",ea="%=",G="&",fa="&&",ja="&&=",ka="&=",H="(",la="*",ma="*=",na="+=",oa=",",pa="-=",qa="->",ra="/",sa="/=",ta=":",ua="::",va=";",I="<",wa="<<",xa="<<=",ya="<=",za="=",Aa="==",Ba="===",J=">",Ca=">=",Da=">>",Ea=">>=",Fa=">>>",Ga=">>>=",Ha="?",Ia="@",L="[",M="^",Ta="^=",Ua="^^",Va="^^=",Wa="{",O="|",Xa="|=",Ya="||",Za="||=",$a="~",ab="break",bb="case",cb="continue",db="delete",eb="do",fb="else",gb="finally",hb="instanceof",ib="return",jb="throw",kb="try",lb="typeof",
-mb="(?:^^|[+-]",nb="\\$1",ob=")\\s*",pb="&amp;",qb="&lt;",rb="&gt;",sb="&quot;",tb="&#",ub="x",vb="'",wb='"',xb=" ",yb="XMP",zb="</",Ab='="',P="",Q="\\",Bb="b",Cb="t",Db="n",Eb="v",Fb="f",Gb="r",Hb="u",Ib="0",Jb="1",Kb="2",Lb="3",Mb="4",Nb="5",Ob="6",Pb="7",Qb="\\x0",Rb="\\x",Sb="-",Tb="]",Ub="\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]",R="g",Vb="\\B",Wb="\\b",Xb="\\D",Yb="\\d",Zb="\\S",$b="\\s",ac="\\W",bc="\\w",cc="(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)",
-dc="(?:",ec=")",fc="gi",gc="PRE",hc='<!DOCTYPE foo PUBLIC "foo bar">\n<foo />',ic="\t",jc="\n",kc="[^<]+|<!--[\\s\\S]*?--\>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>|</?[a-zA-Z][^>]*>|<",lc="nocode",mc=' $1="$2$3$4"',S="pln",nc="string",T="lang-",oc="src",U="str",pc="'\"",qc="'\"`",rc="\"'",V="com",sc="lang-regex",tc="(/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/)",uc="kwd",vc="^(?:",wc=")\\b",xc=" \r\n\t\u00a0",yc="lit",zc="typ",Ac="0123456789",Y="pun",Bc="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try alignof align_union asm axiom bool concept concept_map const_cast constexpr decltype dynamic_cast explicit export friend inline late_check mutable namespace nullptr reinterpret_cast static_assert static_cast template typeid typename typeof using virtual wchar_t where break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient as base by checked decimal delegate descending event fixed foreach from group implicit in interface internal into is lock object out override orderby params partial readonly ref sbyte sealed stackalloc string select uint ulong unchecked unsafe ushort var break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try debugger eval export function get null set undefined var with Infinity NaN caller delete die do dump elsif eval exit foreach for goto if import last local my next no our print package redo require sub undef unless until use wantarray while BEGIN END break continue do else for if return while and as assert class def del elif except exec finally from global import in is lambda nonlocal not or pass print raise try with yield False True None break continue do else for if return while alias and begin case class def defined elsif end ensure false in module next nil not or redo rescue retry self super then true undef unless until when yield BEGIN END break continue do else for if return while case done elif esac eval fi function in local set then until ",
-Cc="</span>",Dc='<span class="',Ec='">',Fc="$1&nbsp;",Gc="&nbsp;<br />",Hc="<br />",Ic="console",Jc="cannot override language handler %s",Kc="default-markup",Lc="default-code",Mc="dec",Z="lang-js",$="lang-css",Nc="lang-in.tag",Oc="htm",Pc="html",Qc="mxml",Rc="xhtml",Sc="xml",Tc="xsl",Uc=" \t\r\n",Vc="atv",Wc="tag",Xc="atn",Yc="lang-uq.val",Zc="in.tag",$c="uq.val",ad="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try alignof align_union asm axiom bool concept concept_map const_cast constexpr decltype dynamic_cast explicit export friend inline late_check mutable namespace nullptr reinterpret_cast static_assert static_cast template typeid typename typeof using virtual wchar_t where ",
-bd="c",cd="cc",dd="cpp",ed="cxx",fd="cyc",gd="m",hd="null true false",id="json",jd="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient as base by checked decimal delegate descending event fixed foreach from group implicit in interface internal into is lock object out override orderby params partial readonly ref sbyte sealed stackalloc string select uint ulong unchecked unsafe ushort var ",
-kd="cs",ld="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient ",md="java",nd="break continue do else for if return while case done elif esac eval fi function in local set then until ",
-od="bsh",pd="csh",qd="sh",rd="break continue do else for if return while and as assert class def del elif except exec finally from global import in is lambda nonlocal not or pass print raise try with yield False True None ",sd="cv",td="py",ud="caller delete die do dump elsif eval exit foreach for goto if import last local my next no our print package redo require sub undef unless until use wantarray while BEGIN END ",vd="perl",wd="pl",xd="pm",yd="break continue do else for if return while alias and begin case class def defined elsif end ensure false in module next nil not or redo rescue retry self super then true undef unless until when yield BEGIN END ",
-zd="rb",Ad="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try debugger eval export function get null set undefined var with Infinity NaN ",Bd="js",Cd="regex",Dd="pre",Ed="code",Fd="xmp",Gd="prettyprint",Hd="class",Id="br",Jd="\r";
-(function(){var N=function(){for(var a=[aa,ba,ca,F,da,ea,G,fa,ja,ka,H,la,ma,na,oa,pa,qa,ra,sa,ta,ua,va,I,wa,xa,ya,za,Aa,Ba,J,Ca,Da,Ea,Fa,Ga,Ha,Ia,L,M,Ta,Ua,Va,Wa,O,Xa,Ya,Za,$a,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb],b=mb,c=0;c<a.length;++c)b+=O+a[c].replace(/([^=<>:&a-z])/g,nb);b+=ob;return b}(),Ja=/&/g,Ka=/</g,La=/>/g,Kd=/\"/g;function Ld(a){return a.replace(Ja,pb).replace(Ka,qb).replace(La,rb).replace(Kd,sb)}function ga(a){return a.replace(Ja,pb).replace(Ka,qb).replace(La,rb)}var Md=/&lt;/g,Nd=/&gt;/g,
-Od=/&apos;/g,Pd=/&quot;/g,Qd=/&amp;/g,Rd=/&nbsp;/g;function Sd(a){var b=a.indexOf(G);if(b<0)return a;for(--b;(b=a.indexOf(tb,b+1))>=0;){var c=a.indexOf(va,b);if(c>=0){var d=a.substring(b+3,c),g=10;if(d&&d.charAt(0)===ub){d=d.substring(1);g=16}var i=parseInt(d,g);isNaN(i)||(a=a.substring(0,b)+String.fromCharCode(i)+a.substring(c+1))}}return a.replace(Md,I).replace(Nd,J).replace(Od,vb).replace(Pd,wb).replace(Qd,G).replace(Rd,xb)}function Ma(a){return yb===a.tagName}function W(a,b){switch(a.nodeType){case 1:var c=
-a.tagName.toLowerCase();b.push(I,c);for(var d=0;d<a.attributes.length;++d){var g=a.attributes[d];if(g.specified){b.push(xb);W(g,b)}}b.push(J);for(var i=a.firstChild;i;i=i.nextSibling)W(i,b);if(a.firstChild||!/^(?:br|link|img)$/.test(c))b.push(zb,c,J);break;case 2:b.push(a.name.toLowerCase(),Ab,Ld(a.value),wb);break;case 3:case 4:b.push(ga(a.nodeValue));break}}function Na(a){for(var b=0,c=z,d=z,g=0,i=a.length;g<i;++g){var m=a[g];if(m.ignoreCase)d=o;else if(/[a-z]/i.test(m.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,
-P))){c=o;d=z;break}}function l(j){if(j.charAt(0)!==Q)return j.charCodeAt(0);switch(j.charAt(1)){case Bb:return 8;case Cb:return 9;case Db:return 10;case Eb:return 11;case Fb:return 12;case Gb:return 13;case Hb:case ub:return parseInt(j.substring(2),16)||j.charCodeAt(1);case Ib:case Jb:case Kb:case Lb:case Mb:case Nb:case Ob:case Pb:return parseInt(j.substring(1),8);default:return j.charCodeAt(1)}}function n(j){if(j<32)return(j<16?Qb:Rb)+j.toString(16);var f=String.fromCharCode(j);if(f===Q||f===Sb||
-f===L||f===Tb)f=Q+f;return f}function q(j){for(var f=j.substring(1,j.length-1).match(new RegExp(Ub,R)),s=[],k=[],h=f[0]===M,e=h?1:0,p=f.length;e<p;++e){var t=f[e];switch(t){case Vb:case Wb:case Xb:case Yb:case Zb:case $b:case ac:case bc:s.push(t);continue}var u=l(t),x;if(e+2<p&&Sb===f[e+1]){x=l(f[e+2]);e+=2}else x=u;k.push([u,x]);if(!(x<65||u>122)){x<65||u>90||k.push([Math.max(65,u)|32,Math.min(x,90)|32]);x<97||u>122||k.push([Math.max(97,u)&-33,Math.min(x,122)&-33])}}k.sort(function(Oa,Pa){return Oa[0]-
-Pa[0]||Pa[1]-Oa[1]});var B=[],E=[NaN,NaN];for(e=0;e<k.length;++e){var A=k[e];if(A[0]<=E[1]+1)E[1]=Math.max(E[1],A[1]);else B.push(E=A)}var D=[L];h&&D.push(M);D.push.apply(D,s);for(e=0;e<B.length;++e){A=B[e];D.push(n(A[0]));if(A[1]>A[0]){A[1]+1>A[0]&&D.push(Sb);D.push(n(A[1]))}}D.push(Tb);return D.join(P)}function v(j){var f=j.source.match(new RegExp(cc,R)),s=f.length,k=[],h,e=0;for(h=0;e<s;++e){var p=f[e];if(p===H)++h;else if(Q===p.charAt(0)){var t=+p.substring(1);if(t&&t<=h)k[t]=-1}}for(e=1;e<k.length;++e)if(-1===
-k[e])k[e]=++b;for(h=e=0;e<s;++e){p=f[e];if(p===H){++h;if(k[h]===undefined)f[e]=dc}else if(Q===p.charAt(0))if((t=+p.substring(1))&&t<=h)f[e]=Q+k[h]}for(h=e=0;e<s;++e)if(M===f[e]&&M!==f[e+1])f[e]=P;if(j.ignoreCase&&c)for(e=0;e<s;++e){p=f[e];var u=p.charAt(0);if(p.length>=2&&u===L)f[e]=q(p);else if(u!==Q)f[e]=p.replace(/[a-zA-Z]/g,function(x){var B=x.charCodeAt(0);return L+String.fromCharCode(B&-33,B|32)+Tb})}return f.join(P)}var w=[];g=0;for(i=a.length;g<i;++g){m=a[g];if(m.global||m.multiline)throw new Error(P+
-m);w.push(dc+v(m)+ec)}return new RegExp(w.join(O),d?fc:R)}var ha=r;function Td(a){if(r===ha){var b=document.createElement(gc);b.appendChild(document.createTextNode(hc));ha=!/</.test(b.innerHTML)}if(ha){var c=a.innerHTML;if(Ma(a))c=ga(c);return c}for(var d=[],g=a.firstChild;g;g=g.nextSibling)W(g,d);return d.join(P)}function Ud(a){var b=0;return function(c){for(var d=r,g=0,i=0,m=c.length;i<m;++i){var l=c.charAt(i);switch(l){case ic:d||(d=[]);d.push(c.substring(g,i));var n=a-b%a;for(b+=n;n>=0;n-="                ".length)d.push("                ".substring(0,
-n));g=i+1;break;case jc:b=0;break;default:++b}}if(!d)return c;d.push(c.substring(g));return d.join(P)}}var Vd=new RegExp(kc,R),Wd=/^<\!--/,Xd=/^<\[CDATA\[/,Yd=/^<br\b/i,Qa=/^<(\/?)([a-zA-Z]+)/;function Zd(a){var b=a.match(Vd),c=[],d=0,g=[];if(b)for(var i=0,m=b.length;i<m;++i){var l=b[i];if(l.length>1&&l.charAt(0)===I){if(!Wd.test(l))if(Xd.test(l)){c.push(l.substring(9,l.length-3));d+=l.length-12}else if(Yd.test(l)){c.push(jc);++d}else if(l.indexOf(lc)>=0&&$d(l)){var n=l.match(Qa)[2],q=1,v;v=i+1;a:for(;v<
-m;++v){var w=b[v].match(Qa);if(w&&w[2]===n)if(w[1]===ra){if(--q===0)break a}else++q}if(v<m){g.push(d,b.slice(i,v+1).join(P));i=v}else g.push(d,l)}else g.push(d,l)}else{var j=Sd(l);c.push(j);d+=j.length}}return{source:c.join(P),tags:g}}function $d(a){return!!a.replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,mc).match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/)}function ia(a,b,c,d){if(b){var g={source:b,b:a};c(g);d.push.apply(d,g.c)}}function K(a,b){var c={},d;(function(){for(var m=a.concat(b),
-l=[],n={},q=0,v=m.length;q<v;++q){var w=m[q],j=w[3];if(j)for(var f=j.length;--f>=0;)c[j.charAt(f)]=w;var s=w[1],k=P+s;if(!n.hasOwnProperty(k)){l.push(s);n[k]=r}}l.push(/[\0-\uffff]/);d=Na(l)})();var g=b.length,i=function(m){for(var l=m.source,n=m.b,q=[n,S],v=0,w=l.match(d)||[],j={},f=0,s=w.length;f<s;++f){var k=w[f],h=j[k],e,p;if(typeof h===nc)p=z;else{var t=c[k.charAt(0)];if(t){e=k.match(t[1]);h=t[0]}else{for(var u=0;u<g;++u){t=b[u];if(e=k.match(t[1])){h=t[0];break}}e||(h=S)}if((p=h.length>=5&&T===
-h.substring(0,5))&&!(e&&e[1])){p=z;h=oc}p||(j[k]=h)}var x=v;v+=k.length;if(p){var B=e[1],E=k.indexOf(B),A=E+B.length,D=h.substring(5);ia(n+x,k.substring(0,E),i,q);ia(n+x+E,B,Ra(D,B),q);ia(n+x+A,k.substring(A),i,q)}else q.push(n+x,h)}m.c=q};return i}function C(a){var b=[],c=[];if(a.tripleQuotedStrings)b.push([U,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,r,pc]);
-else a.multiLineStrings?b.push([U,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,r,qc]):b.push([U,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,r,rc]);if(a.hashComments)a.cStyleComments?b.push([V,/^#(?:[^\r\n\/]|\/(?!\*)|\/\*[^\r\n]*?\*\/)*/,r,F]):b.push([V,/^#[^\r\n]*/,r,F]);if(a.cStyleComments){c.push([V,/^\/\/[^\r\n]*/,r]);c.push([V,/^\/\*[\s\S]*?(?:\*\/|$)/,r])}a.regexLiterals&&c.push([sc,new RegExp(M+N+tc)]);var d=
-a.keywords.replace(/^\s+|\s+$/g,P);d.length&&c.push([uc,new RegExp(vc+d.replace(/\s+/g,O)+wc),r]);b.push([S,/^\s+/,r,xc]);c.push([yc,/^@[a-z_$][a-z_$@0-9]*/i,r,Ia],[zc,/^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/,r],[S,/^[a-z_$][a-z_$@0-9]*/i,r],[yc,/^(?:0x[a-f0-9]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+\-]?\d+)?)[a-z]*/i,r,Ac],[Y,/^.[^\s\w\.$@\'\"\`\/\#]*/,r]);return K(b,c)}var ae=C({keywords:Bc,hashComments:o,cStyleComments:o,multiLineStrings:o,regexLiterals:o});function be(a){var b=a.source,c=a.f,d=a.c,
-g=[],i=0,m=r,l=r,n=0,q=0,v=Ud(window.PR_TAB_WIDTH),w=/([\r\n ]) /g,j=/(^| ) /gm,f=/\r\n?|\n/g,s=/[ \r\n]$/,k=o;function h(p){if(p>i){if(m&&m!==l){g.push(Cc);m=r}if(!m&&l){m=l;g.push(Dc,m,Ec)}var t=ga(v(b.substring(i,p))).replace(k?j:w,Fc);k=s.test(t);var u=window._pr_isIE6()?Gc:Hc;g.push(t.replace(f,u));i=p}}for(;1;){var e;if(e=n<c.length?q<d.length?c[n]<=d[q]:o:z){h(c[n]);if(m){g.push(Cc);m=r}g.push(c[n+1]);n+=2}else if(q<d.length){h(d[q]);l=d[q+1];q+=2}else break}h(b.length);m&&g.push(Cc);a.a=g.join(P)}
-var X={};function y(a,b){for(var c=b.length;--c>=0;){var d=b[c];if(X.hasOwnProperty(d))Ic in window&&console.i(Jc,d);else X[d]=a}}function Ra(a,b){a&&X.hasOwnProperty(a)||(a=/^\s*</.test(b)?Kc:Lc);return X[a]}y(ae,[Lc]);y(K([],[[S,/^[^<?]+/],[Mc,/^<!\w[^>]*(?:>|$)/],[V,/^<\!--[\s\S]*?(?:-\->|$)/],[T,/^<\?([\s\S]+?)(?:\?>|$)/],[T,/^<%([\s\S]+?)(?:%>|$)/],[Y,/^(?:<[%?]|[%?]>)/],[T,/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],[Z,/^<script\b[^>]*>([\s\S]+?)<\/script\b[^>]*>/i],[$,/^<style\b[^>]*>([\s\S]+?)<\/style\b[^>]*>/i],
-[Nc,/^(<\/?[a-z][^<>]*>)/i]]),[Kc,Oc,Pc,Qc,Rc,Sc,Tc]);y(K([[S,/^[\s]+/,r,Uc],[Vc,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,r,rc]],[[Wc,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[Xc,/^(?!style\b|on)[a-z](?:[\w:-]*\w)?/],[Yc,/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[Y,/^[=<>\/]+/],[Z,/^on\w+\s*=\s*\"([^\"]+)\"/i],[Z,/^on\w+\s*=\s*\'([^\']+)\'/i],[Z,/^on\w+\s*=\s*([^\"\'>\s]+)/i],[$,/^sty\w+\s*=\s*\"([^\"]+)\"/i],[$,/^sty\w+\s*=\s*\'([^\']+)\'/i],[$,/^sty\w+\s*=\s*([^\"\'>\s]+)/i]]),[Zc]);y(K([],[[Vc,/^[\s\S]+/]]),
-[$c]);y(C({keywords:ad,hashComments:o,cStyleComments:o}),[bd,cd,dd,ed,fd,gd]);y(C({keywords:hd}),[id]);y(C({keywords:jd,hashComments:o,cStyleComments:o}),[kd]);y(C({keywords:ld,cStyleComments:o}),[md]);y(C({keywords:nd,hashComments:o,multiLineStrings:o}),[od,pd,qd]);y(C({keywords:rd,hashComments:o,multiLineStrings:o,tripleQuotedStrings:o}),[sd,td]);y(C({keywords:ud,hashComments:o,multiLineStrings:o,regexLiterals:o}),[vd,wd,xd]);y(C({keywords:yd,hashComments:o,multiLineStrings:o,regexLiterals:o}),
-[zd]);y(C({keywords:Ad,cStyleComments:o,regexLiterals:o}),[Bd]);y(K([],[[U,/^[\s\S]+/]]),[Cd]);function Sa(a){var b=a.e,c=a.d;a.a=b;try{var d=Zd(b),g=d.source;a.source=g;a.b=0;a.f=d.tags;Ra(c,g)(a);be(a)}catch(i){if(Ic in window){console.log(i);console.h()}}}function ce(a,b){var c={e:a,d:b};Sa(c);return c.a}function de(a){for(var b=window._pr_isIE6(),c=[document.getElementsByTagName(Dd),document.getElementsByTagName(Ed),document.getElementsByTagName(Fd)],d=[],g=0;g<c.length;++g)for(var i=0,m=c[g].length;i<
-m;++i)d.push(c[g][i]);c=r;var l=Date;l.now||(l={now:function(){return(new Date).getTime()}});var n=0,q;function v(){for(var j=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;n<d.length&&l.now()<j;n++){var f=d[n];if(f.className&&f.className.indexOf(Gd)>=0){var s=f.className.match(/\blang-(\w+)\b/);if(s)s=s[1];for(var k=z,h=f.parentNode;h;h=h.parentNode)if((h.tagName===Dd||h.tagName===Ed||h.tagName===Fd)&&h.className&&h.className.indexOf(Gd)>=0){k=o;break}if(!k){var e=Td(f);e=e.replace(/(?:\r\n?|\n)$/,
-P);q={e:e,d:s,g:f};Sa(q);w()}}}if(n<d.length)setTimeout(v,250);else a&&a()}function w(){var j=q.a;if(j){var f=q.g;if(Ma(f)){for(var s=document.createElement(gc),k=0;k<f.attributes.length;++k){var h=f.attributes[k];if(h.specified){var e=h.name.toLowerCase();if(e===Hd)s.className=h.value;else s.setAttribute(h.name,h.value)}}s.innerHTML=j;f.parentNode.replaceChild(s,f);f=s}else f.innerHTML=j;if(b&&f.tagName===gc)for(var p=f.getElementsByTagName(Id),t=p.length;--t>=0;){var u=p[t];u.parentNode.replaceChild(document.createTextNode(Jd),
-u)}}}v()}window.PR_normalizedHtml=W;window.prettyPrintOne=ce;window.prettyPrint=de;window.PR={combinePrefixPatterns:Na,createSimpleLexer:K,registerLangHandler:y,sourceDecorator:C,PR_ATTRIB_NAME:Xc,PR_ATTRIB_VALUE:Vc,PR_COMMENT:V,PR_DECLARATION:Mc,PR_KEYWORD:uc,PR_LITERAL:yc,PR_NOCODE:lc,PR_PLAIN:S,PR_PUNCTUATION:Y,PR_SOURCE:oc,PR_STRING:U,PR_TAG:Wc,PR_TYPE:zc}})();
-})()
diff --git a/javadoc/assets/search_autocomplete.js b/javadoc/assets/search_autocomplete.js
deleted file mode 100755
index 42a24e4..0000000
--- a/javadoc/assets/search_autocomplete.js
+++ /dev/null
@@ -1,274 +0,0 @@
-var gSelectedIndex = -1;
-var gSelectedID = -1;
-var gMatches = new Array();
-var gLastText = "";
-var ROW_COUNT = 20;
-var gInitialized = false;
-var DEFAULT_TEXT = "search developer docs";
-var HAS_SEARCH_PAGE = false;
-
-function set_row_selected(row, selected)
-{
-    var c1 = row.cells[0];
-  //  var c2 = row.cells[1];
-    if (selected) {
-        c1.className = "jd-autocomplete jd-selected";
-  //      c2.className = "jd-autocomplete jd-selected jd-linktype";
-    } else {
-        c1.className = "jd-autocomplete";
-  //      c2.className = "jd-autocomplete jd-linktype";
-    }
-}
-
-function set_row_values(toroot, row, match)
-{
-    var link = row.cells[0].childNodes[0];
-    link.innerHTML = match.__hilabel || match.label;
-    link.href = toroot + match.link
-  //  row.cells[1].innerHTML = match.type;
-}
-
-function sync_selection_table(toroot)
-{
-    var filtered = document.getElementById("search_filtered");
-    var r; //TR DOM object
-    var i; //TR iterator
-    gSelectedID = -1;
-
-    filtered.onmouseover = function() { 
-        if(gSelectedIndex >= 0) {
-          set_row_selected(this.rows[gSelectedIndex], false);
-          gSelectedIndex = -1;
-        }
-    }
-
-    //initialize the table; draw it for the first time (but not visible).
-    if (!gInitialized) {
-        for (i=0; i<ROW_COUNT; i++) {
-            var r = filtered.insertRow(-1);
-            var c1 = r.insertCell(-1);
-        //    var c2 = r.insertCell(-1);
-            c1.className = "jd-autocomplete";
-         //   c2.className = "jd-autocomplete jd-linktype";
-            var link = document.createElement("a");
-            c1.onmousedown = function() {
-                window.location = this.firstChild.getAttribute("href");
-            }
-            c1.onmouseover = function() {
-                this.className = this.className + " jd-selected";
-            }
-            c1.onmouseout = function() {
-                this.className = "jd-autocomplete";
-            }
-            c1.appendChild(link);
-        }
-  /*      var r = filtered.insertRow(-1);
-        var c1 = r.insertCell(-1);
-        c1.className = "jd-autocomplete jd-linktype";
-        c1.colSpan = 2; */
-        gInitialized = true;
-    }
-
-    //if we have results, make the table visible and initialize result info
-    if (gMatches.length > 0) {
-        document.getElementById("search_filtered_div").className = "showing";
-        var N = gMatches.length < ROW_COUNT ? gMatches.length : ROW_COUNT;
-        for (i=0; i<N; i++) {
-            r = filtered.rows[i];
-            r.className = "show-row";
-            set_row_values(toroot, r, gMatches[i]);
-            set_row_selected(r, i == gSelectedIndex);
-            if (i == gSelectedIndex) {
-                gSelectedID = gMatches[i].id;
-            }
-        }
-        //start hiding rows that are no longer matches
-        for (; i<ROW_COUNT; i++) {
-            r = filtered.rows[i];
-            r.className = "no-display";
-        }
-        //if there are more results we're not showing, so say so.
-/*      if (gMatches.length > ROW_COUNT) {
-            r = filtered.rows[ROW_COUNT];
-            r.className = "show-row";
-            c1 = r.cells[0];
-            c1.innerHTML = "plus " + (gMatches.length-ROW_COUNT) + " more"; 
-        } else {
-            filtered.rows[ROW_COUNT].className = "hide-row";
-        }*/
-    //if we have no results, hide the table
-    } else {
-        document.getElementById("search_filtered_div").className = "no-display";
-    }
-}
-
-function search_changed(e, kd, toroot)
-{
-    var search = document.getElementById("search_autocomplete");
-    var text = search.value.replace(/(^ +)|( +$)/g, '');
-
-    // 13 = enter
-    if (e.keyCode == 13) {
-        document.getElementById("search_filtered_div").className = "no-display";
-        if (kd && gSelectedIndex >= 0) {
-            window.location = toroot + gMatches[gSelectedIndex].link;
-            return false;
-        } else if (gSelectedIndex < 0) {
-            if (HAS_SEARCH_PAGE) {
-                return true;
-            } else {
-                sync_selection_table(toroot);
-                return false;
-            }
-        }
-    }
-    // 38 -- arrow up
-    else if (kd && (e.keyCode == 38)) {
-        if (gSelectedIndex >= 0) {
-            gSelectedIndex--;
-        }
-        sync_selection_table(toroot);
-        return false;
-    }
-    // 40 -- arrow down
-    else if (kd && (e.keyCode == 40)) {
-        if (gSelectedIndex < gMatches.length-1
-                        && gSelectedIndex < ROW_COUNT-1) {
-            gSelectedIndex++;
-        }
-        sync_selection_table(toroot);
-        return false;
-    }
-    else if (!kd) {
-        gMatches = new Array();
-        matchedCount = 0;
-        gSelectedIndex = -1;
-        for (var i=0; i<DATA.length; i++) {
-            var s = DATA[i];
-            if (text.length != 0 &&
-                  s.label.toLowerCase().indexOf(text.toLowerCase()) != -1) {
-                gMatches[matchedCount] = s;
-                matchedCount++;
-            }
-        }
-        rank_autocomplete_results(text);
-        for (var i=0; i<gMatches.length; i++) {
-            var s = gMatches[i];
-            if (gSelectedID == s.id) {
-                gSelectedIndex = i;
-            }
-        }
-        highlight_autocomplete_result_labels(text);
-        sync_selection_table(toroot);
-        return true; // allow the event to bubble up to the search api
-    }
-}
-
-function rank_autocomplete_results(query) {
-    query = query || '';
-    if (!gMatches || !gMatches.length)
-      return;
-
-    // helper function that gets the last occurence index of the given regex
-    // in the given string, or -1 if not found
-    var _lastSearch = function(s, re) {
-      if (s == '')
-        return -1;
-      var l = -1;
-      var tmp;
-      while ((tmp = s.search(re)) >= 0) {
-        if (l < 0) l = 0;
-        l += tmp;
-        s = s.substr(tmp + 1);
-      }
-      return l;
-    };
-
-    // helper function that counts the occurrences of a given character in
-    // a given string
-    var _countChar = function(s, c) {
-      var n = 0;
-      for (var i=0; i<s.length; i++)
-        if (s.charAt(i) == c) ++n;
-      return n;
-    };
-
-    var queryLower = query.toLowerCase();
-    var queryAlnum = (queryLower.match(/\w+/) || [''])[0];
-    var partPrefixAlnumRE = new RegExp('\\b' + queryAlnum);
-    var partExactAlnumRE = new RegExp('\\b' + queryAlnum + '\\b');
-
-    var _resultScoreFn = function(result) {
-        // scores are calculated based on exact and prefix matches,
-        // and then number of path separators (dots) from the last
-        // match (i.e. favoring classes and deep package names)
-        var score = 1.0;
-        var labelLower = result.label.toLowerCase();
-        var t;
-        t = _lastSearch(labelLower, partExactAlnumRE);
-        if (t >= 0) {
-            // exact part match
-            var partsAfter = _countChar(labelLower.substr(t + 1), '.');
-            score *= 200 / (partsAfter + 1);
-        } else {
-            t = _lastSearch(labelLower, partPrefixAlnumRE);
-            if (t >= 0) {
-                // part prefix match
-                var partsAfter = _countChar(labelLower.substr(t + 1), '.');
-                score *= 20 / (partsAfter + 1);
-            }
-        }
-
-        return score;
-    };
-
-    for (var i=0; i<gMatches.length; i++) {
-        gMatches[i].__resultScore = _resultScoreFn(gMatches[i]);
-    }
-
-    gMatches.sort(function(a,b){
-        var n = b.__resultScore - a.__resultScore;
-        if (n == 0) // lexicographical sort if scores are the same
-            n = (a.label < b.label) ? -1 : 1;
-        return n;
-    });
-}
-
-function highlight_autocomplete_result_labels(query) {
-    query = query || '';
-    if (!gMatches || !gMatches.length)
-      return;
-
-    var queryLower = query.toLowerCase();
-    var queryAlnumDot = (queryLower.match(/[\w\.]+/) || [''])[0];
-    var queryRE = new RegExp(
-        '(' + queryAlnumDot.replace(/\./g, '\\.') + ')', 'ig');
-    for (var i=0; i<gMatches.length; i++) {
-        gMatches[i].__hilabel = gMatches[i].label.replace(
-            queryRE, '<b>$1</b>');
-    }
-}
-
-function search_focus_changed(obj, focused)
-{
-    if (focused) {
-        if(obj.value == DEFAULT_TEXT){
-            obj.value = "";
-            obj.style.color="#000000";
-        }
-    } else {
-        if(obj.value == ""){
-          obj.value = DEFAULT_TEXT;
-          obj.style.color="#aaaaaa";
-        }
-        document.getElementById("search_filtered_div").className = "no-display";
-    }
-}
-
-function submit_search() {
-  if (HAS_SEARCH_PAGE) {
-    var query = document.getElementById('search_autocomplete').value;
-    document.location = toRoot + 'search.html#q=' + query + '&t=0';
-  }
-  return false;
-}
diff --git a/javadoc/assets/style.css b/javadoc/assets/style.css
deleted file mode 100755
index 5ad1118..0000000
--- a/javadoc/assets/style.css
+++ /dev/null
@@ -1,316 +0,0 @@
-.jd-toptitle {
-    padding-left: 6px;
-    margin-bottom: 30px;
-    font-size: 160%;
-    font-weight: bold;
-}
-
-div#jd-content table {
-    border: none;
-}
-
-div#jd-content td, div#jd-content th {
-    font-size: small;
-}
-
-div#jd-content table.jd-linktable {
-    margin-top: 3px;
-    border-spacing: 0;
-}
-
-div#jd-content p.jd-deprecated-warning {
-    margin-top: 0;
-    margin-bottom: 10px;
-}
-
-div#jd-content table.jd-linktable th {
-    vertical-align: top;
-    text-align: left;
-    padding-top: 2px;
-    padding-bottom: 2px;
-    padding-left: 7px;
-    padding-right: 7px;
-    border: none;
-    border-top: 1px solid #d2d7d0;
-    background-color: #F7FCF4;
-}
-
-div#jd-content table.jd-linktable td {
-    border: none;
-}
-
-div#jd-content table.jd-linktable td  p {
-    padding: 0;
-    margin: 0;
-    line-height: 110%;
-}
-
-div#jd-content table.jd-linktable .jd-linkcol {
-    vertical-align: top;
-    padding-top: 3px;
-    padding-bottom: 0;
-    padding-left: 7px;
-    padding-right: 7px;
-    border-top: 1px solid #d2d7d0;
-    background-color: #E5F1E0;
-    line-height: 110%;
-}
-
-div#jd-content table.jd-linktable .jd-descrcol {
-    vertical-align: top;
-    padding-top: 3px;
-    padding-bottom: 0;
-    padding-left: 7px;
-    padding-right: 7px;
-    border-top: 1px solid #d2d7d0;
-    background-color: #F7FCF4;
-    line-height: 110%;
-}
-
-div#jd-content table.jd-linktable .jd-descrcol p {
-    padding: 0;
-    margin: 0;
-    line-height: 110%;
-}
-
-div#jd-content table.jd-linktable .jd-valcol {
-    vertical-align: top;
-    padding-top: 3px;
-    padding-bottom: 0;
-    padding-left: 7px;
-    padding-right: 7px;
-    border-top: 1px solid #d2d7d0;
-    background-color: #E5F1E0;
-    line-height: 110%;
-}
-
-div#jd-content table.jd-linktable .jd-commentrow {
-    vertical-align: top;
-    padding-top: 3px;
-    padding-bottom: 4px;
-    padding-left: 7px;
-    padding-right: 7px;
-    background-color: #F7FCF4;
-    line-height: 110%;
-}
-
-div#jd-content div.jd-inheritedlinks {
-    vertical-align: top;
-    margin-top: 9px;
-    padding-left: 7px;
-    padding-right: 7px;
-    background-color: #F7FCF4;
-    line-height: 110%;
-}
-
-div#jd-content .jd-page_title-prefix {
-    padding-top: 2em;
-    margin-bottom: -14pt;
-}
-
-div#jd-content {
-    margin-left: 0;
-    margin-right: 10px;
-    margin-bottom: 0;
-}
-
-div#jd-content h1 {
-    padding-left: 10px;
-}
-
-div#jd-content h2 {
-    padding-left: 10px;
-}
-
-div#jd-content h4 {
-    margin-top: 9px;
-    margin-bottom: 1px;
-}
-
-div#jd-content .jd-descr h5 {
-    margin-bottom: 8px;
-}
-
-div#jd-content .sidebox h3 {
-    margin: 1em 0 0 0;
-}
-
-div#jd-content .jd-letterlist {
-    margin-top: 20px;
-    margin-bottom: 0;
-}
-
-div#jd-content .jd-lettertable {
-    margin-top: 15px;
-    margin-right: 10px;
-}
-div#jd-content .jd-letterentries {
-	list-style: none;
-	margin-left: 0;
-}
-div#jd-content .jd-letterentrycomments {
-    color: gray;
-}
-
-div#jd-content table.jd-inheritance-table {
-    margin-top: 0;
-    margin-left: 10px;
-    margin-right: 10px;
-    border-spacing: 0;
-}
-
-div#jd-content table.jd-inheritance-table td {
-    border: none;
-    margin: 0;
-    padding: 0;
-    background-color: white;
-}
-
-div#jd-content table.jd-inheritance-table .jd-inheritance-space {
-    width: 10px;
-}
-
-div#jd-content table.jd-inheritance-table .jd-inheritance-interface-cell {
-    padding-left: 17px;
-}
-
-div#jd-content h4.jd-details-title {
-    margin: 0;
-    background-color: #E5F1E0;
-    padding: 2px;
-    padding-left: 10px;
-    padding-right: 10px;
-    margin-top: 15px;
-}
-
-div#jd-content .jd-details {
-    margin-top: 0;
-    margin-left: -10px;
-}
-
-div#jd-content .jd-details-descr {
-    line-height: 120%;
-    padding-left: 10px;
-    padding-top: 10px;
-    padding-right: 20px;
-}
-
-div#jd-content .jd-descr h5,
-div#jd-content .jd-details h5 {
-    font-style: normal;
-    text-decoration: none;
-    font-size: 120%;
-}
-
-div#jd-content .jd-more {
-}
-
-div#jd-content .jd-descr {
-    padding-top: 0;
-}
-
-div#jd-content .jd-tagdata {
-    margin-top: 6px;
-    margin-bottom: 6px;
-}
-
-div#jd-content .jd-tagtitle {
-    margin-top: 0px;
-}
-
-div#jd-content .jd-tagtable {
-    margin-top: 10px;
-    border-spacing: 0;
-}
-
-div#jd-content .jd-tagtable th {
-    background: white;
-    padding-left: 10px;
-    padding-right: 10px;
-line-height: 120%;
-}
-
-div#jd-content .jd-tagtable th,
-div#jd-content .jd-tagtable td {
-line-height: 120%;
-    border: none;
-    margin: 0;
-    text-align: left;
-    padding-top: 0px;
-    padding-bottom: 5px;
-}
-
-div#jd-content .Code,code,pre,samp,var {
-    color: #004000;
-}
-
-div#jd-content pre.Code {
-    padding-left: 20px;
-}
-
-/* XXX I would really like to apply font-size: 9pt only if var/samp
-   is NOT inside of a .jd-descr div. */
-div#jd-content .jd-descr code,var,samp {
-    padding-left: 0px;
-}
-
-#search_autocomplete {
-    font-size: 80%;
-}
-
-div#jd-searchbox table.jd-autocomplete-table-hidden {
-    display: none;
-}
-
-div#jd-searchbox table.jd-autocomplete-table-showing {
-    z-index: 10;
-    border: 1px solid #3366cc;
-    position: relative;
-    top: -14px;
-    left: 5px;
-    background-color: white;
-}
-
-div#jd-searchbox td.jd-autocomplete {
-    font-family: Arial, sans-serif;
-    padding-left: 6px;
-    padding-right: 6px;
-    padding-top: 1px;
-    padding-bottom: 1px;
-    font-size: 80%;
-    border: none;
-    margin: 0;
-    line-height: 105%;
-}
-
-div#jd-searchbox td.jd-selected {
-    background-color: #E5F1E0;
-}
-
-div#jd-searchbox td.jd-linktype {
-    color: #999999;
-}
-
-div#jd-content .jd-expando-trigger {
-    margin-left: -8px;
-    margin-right: 0px;
-    border: none;
-}
-
-div#jd-build-id {
-    color: #666;
-    width: 100%;
-    text-align: right;
-    padding-right: 5px;
-    padding-bottom: 3px;
-}
-
-@media print {
-    #jd-searchbox, .jd-nav {
-        display: none;
-    }
-    div#jd-content {
-        margin-top: 0px;
-    }
-}
-
diff --git a/javadoc/assets/triangle-none.gif b/javadoc/assets/triangle-none.gif
deleted file mode 100755
index 0c7b469..0000000
--- a/javadoc/assets/triangle-none.gif
+++ /dev/null
Binary files differ
diff --git a/javadoc/classes.html b/javadoc/classes.html
deleted file mode 100755
index 37c5d65..0000000
--- a/javadoc/classes.html
+++ /dev/null
@@ -1,1473 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="./favicon.ico" />
-<title>
-
-  Class Index
-
-
-| Guice
-
-</title>
-<link href="./../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="./../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="./../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("./", "./../javadoc/assets/");
-</script>
-<script src="./../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, './')"
-                      onkeyup="return search_changed(event, false, './')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="./packages.html"  >Package Index</a> | 
-                <a href="./classes.html" class="selected">Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-              <script>
-                /*addLoadEvent(maxPackageHeight);*/
-              </script>
-              <p style="padding:10px">Select a package to view its members</p><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="./packages.html"  >Package Index</a> | 
-            <a href="./classes.html" class="selected">Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("./");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="jd-header">
-<h1>Class Index</h1>
-</div>
-
-<div id="jd-content">
-
-<div class="jd-letterlist">
-    <a href="#letter_A">A</a>
-    <a href="#letter_B">B</a>
-    <a href="#letter_C">C</a>
-    <a href="#letter_D">D</a>
-    <a href="#letter_E">E</a>
-    <a href="#letter_F">F</a>
-    <a href="#letter_G">G</a>
-    <a href="#letter_H">H</a>
-    <a href="#letter_I">I</a>
-    <a href="#letter_J">J</a>
-    <a href="#letter_K">K</a>
-    <a href="#letter_L">L</a>
-    <a href="#letter_M">M</a>
-    <a href="#letter_N">N</a>
-    <a href="#letter_O">O</a>
-    <a href="#letter_P">P</a>
-    <a href="#letter_R">R</a>
-    <a href="#letter_S">S</a>
-    <a href="#letter_T">T</a>
-    <a href="#letter_U">U</a>
-</div>
-
-
-
-<h2 id="letter_A">A</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">Implements <code>and()</code> and <code>or()</code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/AbstractModule.html">AbstractModule</a></td>
-            <td class="jd-descrcol" width="100%">A support class for <code><a href="./com/google/inject/Module.html">Module</a></code>s which reduces repetition and results in
- a more readable configuration.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="./com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></td>
-            <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="./com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></td>
-            <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="./com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></td>
-            <td class="jd-descrcol" width="100%">Arrow symbols that are available from Graphviz.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/assistedinject/Assisted.html">Assisted</a></td>
-            <td class="jd-descrcol" width="100%">Annotates an injected parameter or field whose value comes from an argument to a factory method.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></td>
-            <td class="jd-descrcol" width="100%"><p>
- When used in tandem with <code><a href="./com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>, constructors annotated with 
- <code>@AssistedInject</code> indicate that multiple constructors can be injected, each with different
- parameters.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding for a factory created by FactoryModuleBuilder.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-            <td class="jd-descrcol" width="100%">A visitor for the AssistedInject extension.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></td>
-            <td class="jd-descrcol" width="100%">Details about how a method in an assisted inject factory will be assisted.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_B">B</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Binder.html">Binder</a></td>
-            <td class="jd-descrcol" width="100%">Collects configuration information (primarily <i>bindings</i>) which will be
- used to create an <code><a href="./com/google/inject/Injector.html">Injector</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Binding.html">Binding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A mapping from a key (type and optional annotation) to the strategy for getting instances of the
- type.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/BindingAnnotation.html">BindingAnnotation</a></td>
-            <td class="jd-descrcol" width="100%">Annotates annotations which are used for binding.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</td>
-            <td class="jd-descrcol" width="100%">Interface for an edge that connects an interface to the type or instance
- that is bound to implement it.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="./com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</td>
-            <td class="jd-descrcol" width="100%">Factory interface for <code><a href="./com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code>s.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></td>
-            <td class="jd-descrcol" width="100%">Classification for what kind of binding this edge represents.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></td>
-            <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="./com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></td>
-            <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="./com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> methods to display
- operations on a <code><a href="./com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</td>
-            <td class="jd-descrcol" width="100%">Visits each of the strategies used to scope an injection.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-            <td class="jd-descrcol" width="100%">Visits each of the strategies used to find an instance to satisfy an injection.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_C">C</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">Alternative to the Guice <code><a href="./com/google/inject/Provider.html">Provider</a></code> that throws
- a checked Exception.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></td>
-            <td class="jd-descrcol" width="100%">Annotates methods of a Module to create a <code><a href="./com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code>
- method binding that can throw exceptions.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></td>
-            <td class="jd-descrcol" width="100%">Enum for the "compass point" values used to control where edge
- end points appear on the graph.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td class="jd-descrcol" width="100%">Thrown when a programming error such as a misplaced annotation, illegal binding, or unsupported
- scope is found.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></td>
-            <td class="jd-descrcol" width="100%">Binds to a constant value.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding to the constructor of a concrete clss.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding created from converting a bound instance to a new type.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/CreationException.html">CreationException</a></td>
-            <td class="jd-descrcol" width="100%">Thrown when errors occur while creating a <code><a href="./com/google/inject/Injector.html">Injector</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_D">D</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</td>
-            <td class="jd-descrcol" width="100%">No-op visitor for subclassing.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-            <td class="jd-descrcol" width="100%">No-op visitor for subclassing.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</td>
-            <td class="jd-descrcol" width="100%">No-op visitor for subclassing.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A variable that can be resolved by an injector.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</td>
-            <td class="jd-descrcol" width="100%">Interface for an edge from a class or <code><a href="./com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></code> to the
- interface node that will satisfy the dependency.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="./com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</td>
-            <td class="jd-descrcol" width="100%">Factory interface for <code><a href="./com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>s.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></td>
-            <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="./com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></td>
-            <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="./com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> methods to display
- operations on a <code><a href="./com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></td>
-            <td class="jd-descrcol" width="100%">A request to disable circular proxies.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a></td>
-            <td class="jd-descrcol" width="100%">Utility that helps you introspect dynamic finder methods.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_E">E</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></td>
-            <td class="jd-descrcol" width="100%">Styles for edges.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/Element.html">Element</a></td>
-            <td class="jd-descrcol" width="100%">A core component of a module or injector.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/Elements.html">Elements</a></td>
-            <td class="jd-descrcol" width="100%">Exposes elements of a module so they can be inspected, validated or <code><a href="./com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">rewritten</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</td>
-            <td class="jd-descrcol" width="100%">Visit elements.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Exposed.html">Exposed</a></td>
-            <td class="jd-descrcol" width="100%">Acccompanies a @<code><a href="./com/google/inject/Provides.html">Provides</a></code> method annotation in a
- private module to indicate that the provided binding is exposed.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding to a key exposed from an enclosed private environment.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_F">F</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></td>
-            <td class="jd-descrcol" width="100%">Provides a factory that combines the caller's arguments with injector-supplied values to
- construct objects.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</td>
-            <td class="jd-descrcol" width="100%">
-      <em>
-  This class is deprecated.
-      use <code><a href="./com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code> instead.
-</em>&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/finder/Finder.html">Finder</a></td>
-            <td class="jd-descrcol" width="100%">Marks a method stub as a dynamic finder.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/finder/FirstResult.html">FirstResult</a></td>
-            <td class="jd-descrcol" width="100%">Annotate any dynamic finder method's integer argument with this to pass in
- the index of the first result in the result set you are interested in.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_G">G</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/GrapherModule.html">GrapherModule</a></td>
-            <td class="jd-descrcol" width="100%">Module for the common bindings for <code><a href="./com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="./com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="./com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="./com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="./com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</td>
-            <td class="jd-descrcol" width="100%"><code><a href="./com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> that adds nodes and edges to the graph based on
- the visited <code><a href="./com/google/inject/Binding.html">Binding</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></td>
-            <td class="jd-descrcol" width="100%">Data object to encapsulate the attributes of Graphviz edges that we're
- interested in drawing.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></td>
-            <td class="jd-descrcol" width="100%">Module that provides <code><a href="./com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></code> as the <code><a href="./com/google/inject/grapher/Renderer.html">Renderer</a></code> and
- binds the other Graphviz factories.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></td>
-            <td class="jd-descrcol" width="100%">Data object to encapsulate the attributes of Graphviz nodes that we're
- interested in drawing.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></td>
-            <td class="jd-descrcol" width="100%"><code><a href="./com/google/inject/grapher/Renderer.html">Renderer</a></code> implementation that writes out a Graphviz DOT file of the
- graph.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Guice.html">Guice</a></td>
-            <td class="jd-descrcol" width="100%">The entry point to the Guice framework.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></td>
-            <td class="jd-descrcol" width="100%"><p>
- Apply this filter in web.xml above all other filters (typically), to all requests where you plan
-  to use servlet scopes.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></td>
-            <td class="jd-descrcol" width="100%">As of Guice 2.0 you can still use (your subclasses of) <code>GuiceServletContextListener</code>
- class as a logical place to create and configure your injector.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_H">H</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/HasDependencies.html">HasDependencies</a></td>
-            <td class="jd-descrcol" width="100%">Implemented by <code><a href="./com/google/inject/Binding.html">bindings</a></code>, <code><a href="./com/google/inject/Provider.html">providers</a></code> and instances that expose their dependencies explicitly.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_I">I</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</td>
-            <td class="jd-descrcol" width="100%">Node for classes and instances that have Dependencys and are
- bound to <code><a href="./com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>s.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="./com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</td>
-            <td class="jd-descrcol" width="100%">Factory interface for <code><a href="./com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code>s.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></td>
-            <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="./com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></td>
-            <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="./com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> methods to display
- operations on a <code><a href="./com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/ImplementedBy.html">ImplementedBy</a></td>
-            <td class="jd-descrcol" width="100%">A pointer to the default implementation of a type.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Inject.html">Inject</a></td>
-            <td class="jd-descrcol" width="100%">Annotates members of your implementation class (constructors, methods
- and fields) into which the <code><a href="./com/google/inject/Injector.html">Injector</a></code> should inject values.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</td>
-            <td class="jd-descrcol" width="100%">Listens for injections into instances of type <code>I</code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></td>
-            <td class="jd-descrcol" width="100%">A constructor, field or method that can receive injections.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A request to inject the instance fields and methods of an instance.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Injector.html">Injector</a></td>
-            <td class="jd-descrcol" width="100%">Builds the graphs of objects that make up your application.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></td>
-            <td class="jd-descrcol" width="100%">Root class for graphing an <code><a href="./com/google/inject/Injector.html">Injector</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding to a single instance.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></td>
-            <td class="jd-descrcol" width="100%">A binding to a single instance of a filter.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></td>
-            <td class="jd-descrcol" width="100%">A binding to a single instance of a servlet.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></td>
-            <td class="jd-descrcol" width="100%">Registration of interceptors for matching methods of matching classes.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</td>
-            <td class="jd-descrcol" width="100%">Node for an interface class that has been bound to an implementation class
- or instance.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="./com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</td>
-            <td class="jd-descrcol" width="100%">Factory interface for <code><a href="./com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>s.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></td>
-            <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="./com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></td>
-            <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="./com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> methods to display
- operations on a <code><a href="./com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_J">J</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/jndi/JndiIntegration.html">JndiIntegration</a></td>
-            <td class="jd-descrcol" width="100%">Integrates Guice with JNDI.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></td>
-            <td class="jd-descrcol" width="100%">JPA provider for guice persist.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_K">K</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Key.html">Key</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">Binding key consisting of an injection type and an optional annotation.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_L">L</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="./com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></td>
-            <td class="jd-descrcol" width="100%">A linked binding to a filter.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding to a linked key.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></td>
-            <td class="jd-descrcol" width="100%">A linked binding to a servlet.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_M">M</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/tools/jmx/ManagedBindingMBean.html">ManagedBindingMBean</a></td>
-            <td class="jd-descrcol" width="100%">JMX interface to bindings.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/tools/jmx/Manager.html">Manager</a></td>
-            <td class="jd-descrcol" width="100%">Provides a JMX interface to Guice.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</td>
-            <td class="jd-descrcol" width="100%">An API to bind multiple map entries separately, only to later inject them as
- a complete map.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding for a MapBinder.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">Returns <code>true</code> or <code>false</code> for a given input.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/matcher/Matchers.html">Matchers</a></td>
-            <td class="jd-descrcol" width="100%">Matcher implementations.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/finder/MaxResults.html">MaxResults</a></td>
-            <td class="jd-descrcol" width="100%">Annotate any dynamic finder method's integer argument with this to pass in
- the maximum size of returned result window.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">Injects dependencies into the fields and methods on instances of type <code>T</code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A lookup of the members injector for a type.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/Message.html">Message</a></td>
-            <td class="jd-descrcol" width="100%">An error message and the context in which it occured.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Module.html">Module</a></td>
-            <td class="jd-descrcol" width="100%">A module contributes configuration information, typically interface
- bindings, which will be used to create an <code><a href="./com/google/inject/Injector.html">Injector</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/util/Modules.html">Modules</a></td>
-            <td class="jd-descrcol" width="100%">Static utility methods for creating and working with instances of <code><a href="./com/google/inject/Module.html">Module</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></td>
-            <td class="jd-descrcol" width="100%">See the EDSL example at <code><a href="./com/google/inject/util/Modules.html#override(com.google.inject.Module...)">override()</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">An API to bind multiple values separately, only to later inject them as a
- complete collection.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding for a Multibinder.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-            <td class="jd-descrcol" width="100%">A visitor for the multibinder extension.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_N">N</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/name/Named.html">Named</a></td>
-            <td class="jd-descrcol" width="100%">Annotates named things.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/NameFactory.html">NameFactory</a></td>
-            <td class="jd-descrcol" width="100%">Interface for a service that provides nice Strings that we can
- display in the graph for the types that come up in Bindings.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/name/Names.html">Names</a></td>
-            <td class="jd-descrcol" width="100%">Utility methods for use with <code>@</code><code><a href="./com/google/inject/name/Named.html">Named</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</td>
-            <td class="jd-descrcol" width="100%">Factory for aliasing one node ID to another.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</td>
-            <td class="jd-descrcol" width="100%">Factory for abstract identifiers for elements on the graph.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></td>
-            <td class="jd-descrcol" width="100%">Enum for the shapes that are most interesting for Guice graphing.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></td>
-            <td class="jd-descrcol" width="100%">Styles for nodes.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_O">O</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/OutOfScopeException.html">OutOfScopeException</a></td>
-            <td class="jd-descrcol" width="100%">Thrown from <code><a href="./com/google/inject/Provider.html#get()">get()</a></code> when an attempt is made to access a scoped
- object while the scope in question is not currently active.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_P">P</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/PersistFilter.html">PersistFilter</a></td>
-            <td class="jd-descrcol" width="100%">Apply this filter to enable the HTTP Request unit of work and to have
- guice-persist manage the lifecycle of active units of work.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/PersistModule.html">PersistModule</a></td>
-            <td class="jd-descrcol" width="100%">Install this module to add guice-persist library support for JPA persistence
- providers.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/PersistService.html">PersistService</a></td>
-            <td class="jd-descrcol" width="100%">Persistence provider service.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></td>
-            <td class="jd-descrcol" width="100%">Interface for a service that returns Graphviz port IDs, used for naming the
- rows in ImplementationNode-displaying <code><a href="./com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>s.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></td>
-            <td class="jd-descrcol" width="100%">Implementation of <code><a href="./com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/PrivateBinder.html">PrivateBinder</a></td>
-            <td class="jd-descrcol" width="100%">Returns a binder whose configuration information is hidden from its environment by default.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/PrivateElements.html">PrivateElements</a></td>
-            <td class="jd-descrcol" width="100%">A private collection of elements that are hidden from the enclosing injector or module by
- default.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/PrivateModule.html">PrivateModule</a></td>
-            <td class="jd-descrcol" width="100%">A module whose configuration information is hidden from its environment by default.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/ProvidedBy.html">ProvidedBy</a></td>
-            <td class="jd-descrcol" width="100%">A pointer to the default provider type for a type.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Provider.html">Provider</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">An object capable of providing instances of type <code>T</code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="./com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding to a <code><a href="./com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the provided type.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding to a provider instance.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding to a provider key.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A lookup of the provider for a type.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/util/Providers.html">Providers</a></td>
-            <td class="jd-descrcol" width="100%">Static utility methods for creating and working with instances of
- <code><a href="./com/google/inject/Provider.html">Provider</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A provider with dependencies on other injected types.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A Provider that is part of an extension which supports a custom
- BindingTargetVisitor.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Provides.html">Provides</a></td>
-            <td class="jd-descrcol" width="100%">Annotates methods of a <code><a href="./com/google/inject/Module.html">Module</a></code> to create a provider method binding.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/ProvisionException.html">ProvisionException</a></td>
-            <td class="jd-descrcol" width="100%">Indicates that there was a runtime failure while providing an instance.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_R">R</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/Renderer.html">Renderer</a></td>
-            <td class="jd-descrcol" width="100%">Interface for the service that renders the graph.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/RequestParameters.html">RequestParameters</a></td>
-            <td class="jd-descrcol" width="100%">Apply this to field or parameters of type <code>Map&lt;String, String[]&gt;</code>
- when you want the HTTP request parameter map to be injected.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/RequestScoped.html">RequestScoped</a></td>
-            <td class="jd-descrcol" width="100%">Apply this to implementation classes when you want one instance per request.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></td>
-            <td class="jd-descrcol" width="100%">A request to require explicit bindings.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_S">S</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Scope.html">Scope</a></td>
-            <td class="jd-descrcol" width="100%">A scope is a level of visibility that instances provided by Guice may have.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></td>
-            <td class="jd-descrcol" width="100%">Annotates annotations which are used for scoping.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></td>
-            <td class="jd-descrcol" width="100%">Registration of a scope annotation with the scope that implements it.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></td>
-            <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="./com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Scopes.html">Scopes</a></td>
-            <td class="jd-descrcol" width="100%">Built-in scope implementations.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/ServletModule.html">ServletModule</a></td>
-            <td class="jd-descrcol" width="100%">Configures the servlet scopes and creates bindings for the servlet API
- objects so you can inject the request, response, session, etc.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></td>
-            <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="./com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets()</a></code>&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></td>
-            <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="./com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets()</a></code>&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></td>
-            <td class="jd-descrcol" width="100%">A binding created by <code><a href="./com/google/inject/servlet/ServletModule.html">ServletModule</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-            <td class="jd-descrcol" width="100%">A visitor for the servlet extension.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/ServletScopes.html">ServletScopes</a></td>
-            <td class="jd-descrcol" width="100%">Servlet scopes.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/SessionScoped.html">SessionScoped</a></td>
-            <td class="jd-descrcol" width="100%">Apply this to implementation classes when you want one instance per session.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></td>
-            <td class="jd-descrcol" width="100%">Reasonable implementation for <code><a href="./com/google/inject/grapher/NameFactory.html">NameFactory</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Singleton.html">Singleton</a></td>
-            <td class="jd-descrcol" width="100%">Apply this to implementation classes when you want only one instance
- (per <code><a href="./com/google/inject/Injector.html">Injector</a></code>) to be reused for all injections for that binding.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spring/SpringIntegration.html">SpringIntegration</a></td>
-            <td class="jd-descrcol" width="100%">Integrates Guice with Spring.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Stage.html">Stage</a></td>
-            <td class="jd-descrcol" width="100%">The stage we're running in.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></td>
-            <td class="jd-descrcol" width="100%">A request to inject the static fields and methods of a type.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></td>
-            <td class="jd-descrcol" width="100%">IdFactory implementation that for String node IDs.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_T">T</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</td>
-            <td class="jd-descrcol" width="100%">
-      <em>
-  This interface is deprecated.
-      use <code><a href="./com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code> instead.
-</em>&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></td>
-            <td class="jd-descrcol" width="100%"><p>Builds a binding for a <code><a href="./com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="./com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</td>
-            <td class="jd-descrcol" width="100%">&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/Toolable.html">Toolable</a></td>
-            <td class="jd-descrcol" width="100%">Instructs an <code><a href="./com/google/inject/Injector.html">Injector</a></code> running in <code><a href="./com/google/inject/Stage.html#TOOL">TOOL</a></code> that a method should be injected.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/Transactional.html">Transactional</a></td>
-            <td class="jd-descrcol" width="100%"><p> Any method or class marked with this annotation will be considered for transactionality.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></td>
-            <td class="jd-descrcol" width="100%"><code><a href="./com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> that returns a Collection of the
- <code><a href="./com/google/inject/Key.html">Key</a></code>s of each Binding's dependencies.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/TypeConverter.html">TypeConverter</a></td>
-            <td class="jd-descrcol" width="100%">Converts constant string values to a different type.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></td>
-            <td class="jd-descrcol" width="100%">Registration of type converters for matching target types.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</td>
-            <td class="jd-descrcol" width="100%">Context of an injectable type encounter.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/TypeListener.html">TypeListener</a></td>
-            <td class="jd-descrcol" width="100%">Listens for Guice to encounter injectable types.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></td>
-            <td class="jd-descrcol" width="100%">Binds types (picked using a Matcher) to an type listener.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">Represents a generic type <code>T</code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/util/Types.html">Types</a></td>
-            <td class="jd-descrcol" width="100%">Static methods for working with types.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_U">U</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/UnitOfWork.html">UnitOfWork</a></td>
-            <td class="jd-descrcol" width="100%">This interface is used to gain manual control over the unit of work.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">An untargetted binding.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/UriPatternType.html">UriPatternType</a></td>
-            <td class="jd-descrcol" width="100%">An enumeration of the available URI-pattern matching styles&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/javadoc/com/google/inject/AbstractModule.html b/javadoc/com/google/inject/AbstractModule.html
deleted file mode 100755
index afbfc97..0000000
--- a/javadoc/com/google/inject/AbstractModule.html
+++ /dev/null
@@ -1,2269 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  AbstractModule
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    class
-<h1>AbstractModule</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../com/google/inject/Module.html">Module</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.AbstractModule</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-direct" class="jd-expando-trigger closed"
-          ><img id="subclasses-direct-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Direct Subclasses
-
-  <div id="subclasses-direct">
-      <div id="subclasses-direct-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a>,
-            
-              <a href="../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a>,
-            
-              <a href="../../../com/google/inject/persist/PersistModule.html">PersistModule</a>,
-            
-              <a href="../../../com/google/inject/servlet/ServletModule.html">ServletModule</a>
-            
-          
-      </div>
-      <div id="subclasses-direct-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></td>
-              <td class="jd-descrcol" width="100%">Module for the common bindings for <code><a href="../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></td>
-              <td class="jd-descrcol" width="100%">Module that provides <code><a href="../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></code> as the <code><a href="../../../com/google/inject/grapher/Renderer.html">Renderer</a></code> and
- binds the other Graphviz factories.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/persist/PersistModule.html">PersistModule</a></td>
-              <td class="jd-descrcol" width="100%">Install this module to add guice-persist library support for JPA persistence
- providers.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></td>
-              <td class="jd-descrcol" width="100%">Configures the servlet scopes and creates bindings for the servlet API
- objects so you can inject the request, response, session, etc.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></td>
-              <td class="jd-descrcol" width="100%">JPA provider for guice persist.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A support class for <code><a href="../../../com/google/inject/Module.html">Module</a></code>s which reduces repetition and results in
- a more readable configuration. Simply extend this class, implement <code><a href="../../../com/google/inject/AbstractModule.html#configure()">configure()</a></code>, and call the inherited methods which mirror those found in
- <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>. For example:
-
- <pre>
- public class MyModule extends AbstractModule {
-   protected void configure() {
-     bind(Service.class).to(ServiceImpl.class).in(Singleton.class);
-     bind(CreditCardPaymentService.class);
-     bind(PaymentService.class).to(CreditCardPaymentService.class);
-     bindConstant().annotatedWith(Names.named("port")).to(8080);
-   }
- }
- </pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#AbstractModule()">AbstractModule</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../com/google/inject/Binder.html">Binder</a> builder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#bind(com.google.inject.Key<T>)">bind</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#bind(com.google.inject.TypeLiteral<T>)">bind</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#bind(java.lang.Class<T>)">bind</a></span>(Class&lt;T&gt; clazz)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#bindConstant()">bindConstant</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation, <a href="../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#binder()">binder</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets direct access to the underlying <code>Binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#currentStage()">currentStage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#install(com.google.inject.Module)">install</a></span>(<a href="../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#requestInjection(java.lang.Object)">requestInjection</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection</a></span>(Class...&lt;?&gt; types)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#requireBinding(com.google.inject.Key<?>)">requireBinding</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>key</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#requireBinding(java.lang.Class<?>)">requireBinding</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>type</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Module" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Module-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../com/google/inject/Module.html">com.google.inject.Module</a>
-
-<div id="inherited-methods-com.google.inject.Module">
-  <div id="inherited-methods-com.google.inject.Module-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Module-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Module.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="AbstractModule()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">AbstractModule</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="configure(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-        synchronized 
-        void
-      </span>
-      <span class="sympad">configure</span>
-      <span class="normal">(<a href="../../../com/google/inject/Binder.html">Binder</a> builder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Contributes bindings and other configurations for this module to <code>binder</code>.
-
- <p><strong>Do not invoke this method directly</strong> to install submodules. Instead use
- <code><a href="../../../com/google/inject/Binder.html#install(com.google.inject.Module)">install(Module)</a></code>, which ensures that <code><a href="../../../com/google/inject/Provides.html">provider methods</a></code> are
- discovered.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="addError(com.google.inject.spi.Message)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(<a href="../../../com/google/inject/spi/Message.html">Message</a> message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#addError(com.google.inject.spi.Message)">addError(Message)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="addError(java.lang.String, java.lang.Object...)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(String message, Object... arguments)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#addError(java.lang.String, java.lang.Object...)">addError(String, Object[])</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="addError(java.lang.Throwable)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(Throwable t)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#addError(java.lang.Throwable)">addError(Throwable)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bind(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bind(com.google.inject.Key<T>)">bind(Key)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bind(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bind(com.google.inject.TypeLiteral<T>)">bind(TypeLiteral)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bind(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(Class&lt;T&gt; clazz)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bind(java.lang.Class<T>)">bind(Class)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindConstant()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a>
-      </span>
-      <span class="sympad">bindConstant</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bindConstant()">bindConstant()</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">bindInterceptor</span>
-      <span class="normal">(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor(com.google.inject.matcher.Matcher, com.google.inject.matcher.Matcher, org.aopalliance.intercept.MethodInterceptor[])</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">bindListener</span>
-      <span class="normal">(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener(com.google.inject.matcher.Matcher, com.google.inject.spi.TypeListener)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">bindScope</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation, <a href="../../../com/google/inject/Scope.html">Scope</a> scope)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope(Class, Scope)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="binder()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/Binder.html">Binder</a>
-      </span>
-      <span class="sympad">binder</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets direct access to the underlying <code>Binder</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="configure()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">configure</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Configures a <code><a href="../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">convertToTypes</span>
-      <span class="normal">(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes(Matcher<? super TypeLiteral<?>>, TypeConverter)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="currentStage()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/Stage.html">Stage</a>
-      </span>
-      <span class="sympad">currentStage</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#currentStage()">currentStage()</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector(TypeLiteral)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector(Class)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getProvider(com.google.inject.Key<T>)">getProvider(Key)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getProvider(java.lang.Class<T>)">getProvider(Class)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="install(com.google.inject.Module)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">install</span>
-      <span class="normal">(<a href="../../../com/google/inject/Module.html">Module</a> module)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#install(com.google.inject.Module)">install(Module)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requestInjection(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">requestInjection</span>
-      <span class="normal">(Object instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#requestInjection(java.lang.Object)">requestInjection(Object)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requestStaticInjection(java.lang.Class<?>...)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">requestStaticInjection</span>
-      <span class="normal">(Class...&lt;?&gt; types)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection(Class[])</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requireBinding(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">requireBinding</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Adds a dependency from this module to <code>key</code>. When the injector is
- created, Guice will report an error if <code>key</code> cannot be injected.
- Note that this requirement may be satisfied by implicit binding, such as
- a public no-arguments constructor.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="requireBinding(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">requireBinding</span>
-      <span class="normal">(Class&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Adds a dependency from this module to <code>type</code>. When the injector is
- created, Guice will report an error if <code>type</code> cannot be injected.
- Note that this requirement may be satisfied by implicit binding, such as
- a public no-arguments constructor.</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/Binder.html b/javadoc/com/google/inject/Binder.html
deleted file mode 100755
index 951ad26..0000000
--- a/javadoc/com/google/inject/Binder.html
+++ /dev/null
@@ -1,2190 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Binder
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>Binder</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Binder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></td>
-              <td class="jd-descrcol" width="100%">Returns a binder whose configuration information is hidden from its environment by default.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Collects configuration information (primarily <i>bindings</i>) which will be
- used to create an <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>. Guice provides this object to your
- application's <code><a href="../../../com/google/inject/Module.html">Module</a></code> implementors so they may each contribute
- their own bindings and other registrations.
-
- <h3>The Guice Binding EDSL</h3>
-
- Guice uses an <i>embedded domain-specific language</i>, 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: <b>it is difficult to
- learn how to use the Binding EDSL by reading
- method-level javadocs</b>.  Instead, you should consult the series of
- examples below.  To save space, these examples omit the opening
- <code>binder</code>, just as you will if your module extends
- <code><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></code>.
-
- <pre>
-     bind(ServiceImpl.class);</pre>
-
- This statement does essentially nothing; it "binds the <code>ServiceImpl</code>
- class to itself" and does not change Guice's default behavior.  You may still
- want to use this if you prefer your <code><a href="../../../com/google/inject/Module.html">Module</a></code> class to serve as an
- explicit <i>manifest</i> for the services it provides.  Also, in rare cases,
- Guice may be unable to validate a binding at injector creation time unless it
- is given explicitly.
-
- <pre>
-     bind(Service.class).to(ServiceImpl.class);</pre>
-
- Specifies that a request for a <code>Service</code> instance with no binding
- annotations should be treated as if it were a request for a
- <code>ServiceImpl</code> instance. This <i>overrides</i> the function of any
- <code><a href="../../../com/google/inject/ImplementedBy.html">@ImplementedBy</a></code> or <code><a href="../../../com/google/inject/ProvidedBy.html">@ProvidedBy</a></code>
- annotations found on <code>Service</code>, since Guice will have already
- "moved on" to <code>ServiceImpl</code> before it reaches the point when it starts
- looking for these annotations.
-
- <pre>
-     bind(Service.class).toProvider(ServiceProvider.class);</pre>
-
- In this example, <code>ServiceProvider</code> must extend or implement
- <code>Provider&lt;Service&gt;</code>. This binding specifies that Guice should resolve
- an unannotated injection request for <code>Service</code> by first resolving an
- instance of <code>ServiceProvider</code> in the regular way, then calling
- <code><a href="../../../com/google/inject/Provider.html#get()">get()</a></code> on the resulting Provider instance to obtain the
- <code>Service</code> instance.
-
- <p>The <code><a href="../../../com/google/inject/Provider.html">Provider</a></code> you use here does not have to be a "factory"; that
- is, a provider which always <i>creates</i> each instance it provides.
- However, this is generally a good practice to follow.  You can then use
- Guice's concept of <code><a href="../../../com/google/inject/Scope.html">scopes</a></code> to guide when creation should happen
- -- "letting Guice work for you".
-
- <pre>
-     bind(Service.class).annotatedWith(Red.class).to(ServiceImpl.class);</pre>
-
- Like the previous example, but only applies to injection requests that use
- the binding annotation <code>@Red</code>.  If your module also includes bindings
- for particular <i>values</i> of the <code>@Red</code> annotation (see below),
- then this binding will serve as a "catch-all" for any values of <code>@Red</code>
- that have no exact match in the bindings.
- 
- <pre>
-     bind(ServiceImpl.class).in(Singleton.class);
-     // or, alternatively
-     bind(ServiceImpl.class).in(Scopes.SINGLETON);</pre>
-
- Either of these statements places the <code>ServiceImpl</code> class into
- singleton scope.  Guice will create only one instance of <code>ServiceImpl</code>
- and will reuse it for all injection requests of this type.  Note that it is
- still possible to bind another instance of <code>ServiceImpl</code> if the second
- binding is qualified by an annotation as in the previous example.  Guice is
- not overly concerned with <i>preventing</i> you from creating multiple
- instances of your "singletons", only with <i>enabling</i> your application to
- share only one instance if that's all you tell Guice you need.
-
- <p><b>Note:</b> a scope specified in this way <i>overrides</i> any scope that
- was specified with an annotation on the <code>ServiceImpl</code> class.
- 
- <p>Besides <code><a href="../../../com/google/inject/Singleton.html">Singleton</a></code>/<code><a href="../../../com/google/inject/Scopes.html#SINGLETON">SINGLETON</a></code>, there are
- servlet-specific scopes available in
- <code>com.google.inject.servlet.ServletScopes</code>, and your Modules can
- contribute their own custom scopes for use here as well.
-
- <pre>
-     bind(new TypeLiteral&lt;PaymentService&lt;CreditCard>>() {})
-         .to(CreditCardPaymentService.class);</pre>
-
- This admittedly odd construct is the way to bind a parameterized type. It
- tells Guice how to honor an injection request for an element of type
- <code>PaymentService&lt;CreditCard&gt;</code>. The class
- <code>CreditCardPaymentService</code> must implement the
- <code>PaymentService&lt;CreditCard&gt;</code> interface.  Guice cannot currently bind or
- inject a generic type, such as <code>Set&lt;E&gt;</code>; all type parameters must be
- fully specified.
-
- <pre>
-     bind(Service.class).toInstance(new ServiceImpl());
-     // or, alternatively
-     bind(Service.class).toInstance(SomeLegacyRegistry.getService());</pre>
-
- In this example, your module itself, <i>not Guice</i>, takes responsibility
- for obtaining a <code>ServiceImpl</code> instance, then asks Guice to always use
- this single instance to fulfill all <code>Service</code> injection requests.  When
- the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> is created, it will automatically perform field
- and method injection for this instance, but any injectable constructor on
- <code>ServiceImpl</code> is simply ignored.  Note that using this approach results
- in "eager loading" behavior that you can't control.
-
- <pre>
-     bindConstant().annotatedWith(ServerHost.class).to(args[0]);</pre>
-
- 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 <code><a href="null#valueOf(java.lang.Class<T>, java.lang.String)">all enums</a></code>, and to
- <code><a href="null#forName(java.lang.String)">class literals</a></code>. Conversions for other types can be
- configured using <code><a href="../../../com/google/inject/Binder.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes()</a></code>.
-
- <pre>
-   @Color("red") Color red; // A member variable (field)
-    . . .
-     red = MyModule.class.getDeclaredField("red").getAnnotation(Color.class);
-     bind(Service.class).annotatedWith(red).to(RedService.class);</pre>
-
- 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 Guice.
-
- <pre>
-     bind(Service.class)
-         .annotatedWith(Names.named("blue"))
-         .to(BlueService.class);</pre>
-
- Differentiating by names is a common enough use case that we provided a
- standard annotation, <code><a href="../../../com/google/inject/name/Named.html">@Named</a></code>.  Because of
- Guice'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.
-
- <pre>
-     Constructor<T> loneCtor = getLoneCtorFromServiceImplViaReflection();
-     bind(ServiceImpl.class)
-         .toConstructor(loneCtor);</pre>
-
- In this example, we directly tell Guice which constructor to use in a concrete
- class implementation. It means that we do not need to place @Inject
- on any of the constructors and that Guice treats the provided constructor as though
- it were annotated so. It is useful for cases where you cannot modify existing
- classes and is a bit simpler than using a <code><a href="../../../com/google/inject/Provider.html">Provider</a></code>.
-
- <p>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 Guice will let something bogus slip by, and will then inform you of
- the problems at runtime, as soon as you try to create your Injector.
-
- <p>The other methods of Binder such as <code><a href="../../../com/google/inject/Binder.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope(Class<? extends Annotation>, Scope)</a></code>,
- <code><a href="../../../com/google/inject/Binder.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor(Matcher<? super Class<?>>, Matcher<? super Method>, MethodInterceptor...)</a></code>, <code><a href="../../../com/google/inject/Binder.html#install(com.google.inject.Module)">install(Module)</a></code>, <code><a href="../../../com/google/inject/Binder.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection(Class<?>...)</a></code>,
- <code><a href="../../../com/google/inject/Binder.html#addError(java.lang.String, java.lang.Object...)">addError(String, Object...)</a></code> and <code><a href="../../../com/google/inject/Binder.html#currentStage()">currentStage()</a></code> are not part of the Binding EDSL;
- you can learn how to use these in the usual way, from the method
- documentation.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-        <div class="jd-descrdiv">Records an error message to be presented to the user at a later time.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-        <div class="jd-descrdiv">Records an error message which will be presented to the user at a later
- time.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-        <div class="jd-descrdiv">Records an exception, the full details of which will be logged, and the
- message of which will be presented to the user at a later
- time.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bind(com.google.inject.Key<T>)">bind</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bind(com.google.inject.TypeLiteral<T>)">bind</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bind(java.lang.Class<T>)">bind</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bindConstant()">bindConstant</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-        <div class="jd-descrdiv">Binds method interceptor[s] to methods matched by class and method matchers.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</nobr>
-        
-        <div class="jd-descrdiv">Registers a listener for injectable types.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, <a href="../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-        <div class="jd-descrdiv">Binds a scope to an annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</nobr>
-        
-        <div class="jd-descrdiv">Binds a type converter.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#currentStage()">currentStage</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the current stage.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#disableCircularProxies()">disableCircularProxies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Prevents Guice from constructing a Proxy when a circular dependency
- is found.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-        <div class="jd-descrdiv">Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Returns the provider used to obtain instances for the given injection key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the provider used to obtain instances for the given injection type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#install(com.google.inject.Module)">install</a></span>(<a href="../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-        <div class="jd-descrdiv">Uses the given module to configure more bindings.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#newPrivateBinder()">newPrivateBinder</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Creates a new private child environment for bindings and other configuration.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#requestInjection(com.google.inject.TypeLiteral<T>, T)">requestInjection</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type, T instance)</nobr>
-        
-        <div class="jd-descrdiv">Upon successful creation, the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> will inject instance fields
- and methods of the given object.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#requestInjection(java.lang.Object)">requestInjection</a></span>(Object instance)</nobr>
-        
-        <div class="jd-descrdiv">Upon successful creation, the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> will inject instance fields
- and methods of the given object.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection</a></span>(Class...&lt;?&gt; types)</nobr>
-        
-        <div class="jd-descrdiv">Upon successful creation, the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> will inject static fields
- and methods in the given classes.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#requireExplicitBindings()">requireExplicitBindings</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Instructs the Injector that bindings must be listed in a Module in order to
- be injected.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#skipSources(java.lang.Class...)">skipSources</a></span>(Class... classesToSkip)</nobr>
-        
-        <div class="jd-descrdiv">Returns a binder that skips <code>classesToSkip</code> when identify the
- calling code.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#withSource(java.lang.Object)">withSource</a></span>(Object source)</nobr>
-        
-        <div class="jd-descrdiv">Returns a binder that uses <code>source</code> as the reference location for
- configuration errors.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="addError(com.google.inject.spi.Message)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(<a href="../../../com/google/inject/spi/Message.html">Message</a> message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records an error message to be presented to the user at a later time.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="addError(java.lang.String, java.lang.Object...)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(String message, Object... arguments)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records an error message which will be presented to the user at a later
- time. Unlike throwing an exception, this enable us to continue
- configuring the Injector and discover more errors. Uses <code><a href="null#format(java.lang.String, java.lang.Object...)">format(String, Object[])</a></code> to insert the arguments into the
- message.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="addError(java.lang.Throwable)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(Throwable t)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records an exception, the full details of which will be logged, and the
- message of which will be presented to the user at a later
- time. If your Module calls something that you worry may fail, you should
- catch the exception and pass it into this.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="bind(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="bind(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="bind(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="bindConstant()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a>
-      </span>
-      <span class="sympad">bindConstant</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">bindInterceptor</span>
-      <span class="normal">(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds method interceptor[s] to methods matched by class and method matchers. A method is
- eligible for interception if:
-
- <ul>
-  <li>Guice created the instance the method is on</li>
-  <li>Neither the enclosing type nor the method is final</li>
-  <li>And the method is package-private, protected, or public</li>
- </ul></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>classMatcher</td>
-          <td>matches classes the interceptor should apply to. For
-     example: <code>only(Runnable.class)</code>.</td>
-        </tr>
-        <tr>
-          <th>methodMatcher</td>
-          <td>matches methods the interceptor should apply to. For
-     example: <code>annotatedWith(Transactional.class)</code>.</td>
-        </tr>
-        <tr>
-          <th>interceptors</td>
-          <td>to bind
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">bindListener</span>
-      <span class="normal">(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Registers a listener for injectable types. Guice will notify the listener when it encounters
- injectable types matched by the given type matcher.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>typeMatcher</td>
-          <td>that matches injectable types the listener should be notified of</td>
-        </tr>
-        <tr>
-          <th>listener</td>
-          <td>for injectable types matched by typeMatcher</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">bindScope</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, <a href="../../../com/google/inject/Scope.html">Scope</a> scope)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds a scope to an annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">convertToTypes</span>
-      <span class="normal">(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds a type converter. The injector will use the given converter to
- convert string constants to matching types as needed.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>typeMatcher</td>
-          <td>matches types the converter can handle</td>
-        </tr>
-        <tr>
-          <th>converter</td>
-          <td>converts values</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="currentStage()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Stage.html">Stage</a>
-      </span>
-      <span class="sympad">currentStage</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the current stage.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="disableCircularProxies()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">disableCircularProxies</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Prevents Guice from constructing a Proxy when a circular dependency
- is found.  By default, circular proxies are not disabled.
- <p>
- If a parent injector disables circular proxies, then all child injectors
- (and private modules within that injector) also disable circular proxies.
- If a parent does not disable circular proxies, a child injector or private
- module may optionally declare itself as disabling circular proxies. If it
- does, the behavior is limited only to that child or any grandchildren. No
- siblings of the child will disable circular proxies.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>. The returned members injector will not be valid until the main
- <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> has been created. The members injector will throw an <code>IllegalStateException</code> if you try to use it beforehand.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>typeLiteral</td>
-          <td>type to get members injector for</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>. The returned members injector will not be valid until the main
- <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> has been created. The members injector will throw an <code>IllegalStateException</code> if you try to use it beforehand.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>type</td>
-          <td>type to get members injector for</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the provider used to obtain instances for the given injection key.
- The returned provider will not be valid until the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> has been
- created. The provider will throw an <code>IllegalStateException</code> if you
- try to use it beforehand.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the provider used to obtain instances for the given injection type.
- The returned provider will not be valid until the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> has been
- created. The provider will throw an <code>IllegalStateException</code> if you
- try to use it beforehand.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="install(com.google.inject.Module)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">install</span>
-      <span class="normal">(<a href="../../../com/google/inject/Module.html">Module</a> module)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Uses the given module to configure more bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newPrivateBinder()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a>
-      </span>
-      <span class="sympad">newPrivateBinder</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a new private child environment for bindings and other configuration. The returned
- binder can be used to add and configuration information in this environment. See <code><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></code> for details.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a binder that inherits configuration from this binder. Only exposed configuration on
-      the returned binder will be visible to this binder.</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requestInjection(com.google.inject.TypeLiteral<T>, T)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">requestInjection</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type, T instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Upon successful creation, the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> will inject instance fields
- and methods of the given object.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>type</td>
-          <td>of instance</td>
-        </tr>
-        <tr>
-          <th>instance</td>
-          <td>for which members will be injected</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requestInjection(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">requestInjection</span>
-      <span class="normal">(Object instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Upon successful creation, the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> will inject instance fields
- and methods of the given object.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>instance</td>
-          <td>for which members will be injected</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requestStaticInjection(java.lang.Class<?>...)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">requestStaticInjection</span>
-      <span class="normal">(Class...&lt;?&gt; types)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Upon successful creation, the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> will inject static fields
- and methods in the given classes.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>types</td>
-          <td>for which static members will be injected
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requireExplicitBindings()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">requireExplicitBindings</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Instructs the Injector that bindings must be listed in a Module in order to
- be injected. Classes that are not explicitly bound in a module cannot be
- injected. Bindings created through a linked binding (
- <code>bind(Foo.class).to(FooImpl.class)</code>) are allowed, but the
- implicit binding (<code>FooImpl</code>) cannot be directly injected unless
- it is also explicitly bound (<code>bind(FooImpl.class)</code>).
- <p>
- Tools can still retrieve bindings for implicit bindings (bindings created
- through a linked binding) if explicit bindings are required, however
- <code><a href="../../../com/google/inject/Binding.html#getProvider()">getProvider()</a></code> will fail.
- <p>
- By default, explicit bindings are not required.
- <p>
- If a parent injector requires explicit bindings, then all child injectors
- (and private modules within that injector) also require explicit bindings.
- If a parent does not require explicit bindings, a child injector or private
- module may optionally declare itself as requiring explicit bindings. If it
- does, the behavior is limited only to that child or any grandchildren. No
- siblings of the child will require explicit bindings.
- <p>
- If the parent did not require explicit bindings but the child does, it is
- possible that a linked binding in the child may add a JIT binding to the
- parent. The child will not be allowed to reference the target binding
- directly, but the parent and other children of the parent may be able to.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="skipSources(java.lang.Class...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Binder.html">Binder</a>
-      </span>
-      <span class="sympad">skipSources</span>
-      <span class="normal">(Class... classesToSkip)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a binder that skips <code>classesToSkip</code> when identify the
- calling code. The caller's StackTraceElement is used to locate
- the source of configuration errors.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>classesToSkip</td>
-          <td>library classes that create bindings on behalf of
-      their clients.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a binder that shares its configuration with this binder.</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="withSource(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Binder.html">Binder</a>
-      </span>
-      <span class="sympad">withSource</span>
-      <span class="normal">(Object source)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a binder that uses <code>source</code> as the reference location for
- configuration errors. This is typically a StackTraceElement
- for <code>.java</code> source but it could any binding source, such as the
- path to a <code>.properties</code> file.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>source</td>
-          <td>any object representing the source location and has a
-     concise <code><a href="null#toString()">toString()</a></code> value</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a binder that shares its configuration with this binder</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/Binding.html b/javadoc/com/google/inject/Binding.html
deleted file mode 100755
index 6d597dc..0000000
--- a/javadoc/com/google/inject/Binding.html
+++ /dev/null
@@ -1,952 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Binding
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>Binding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Binding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;,
-            
-              <a href="../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;,
-            
-              <a href="../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;,
-            
-              <a href="../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;,
-            
-              <a href="../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;,
-            
-              <a href="../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;,
-            
-              <a href="../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;,
-            
-              <a href="../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;,
-            
-              <a href="../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to the constructor of a concrete clss.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding created from converting a bound instance to a new type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a key exposed from an enclosed private environment.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a single instance.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a linked key.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a <code><a href="../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the provided type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a provider instance.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a provider key.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">An untargetted binding.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A mapping from a key (type and optional annotation) to the strategy for getting instances of the
- type. This interface is part of the introspection API and is intended primarily for use by 
- tools.
-
- <p>Bindings are created in several ways:
- <ul>
-     <li>Explicitly in a module, via <code>bind()</code> and <code>bindConstant()</code>
-         statements:
- <pre>
-     bind(Service.class).annotatedWith(Red.class).to(ServiceImpl.class);
-     bindConstant().annotatedWith(ServerHost.class).to(args[0]);</pre></li>
-     <li>Implicitly by the Injector by following a type's <code><a href="../../../com/google/inject/ImplementedBy.html">pointer</a></code> <code><a href="../../../com/google/inject/ProvidedBy.html">annotations</a></code> or by using its <code><a href="../../../com/google/inject/Inject.html">annotated</a></code> or
-         default constructor.</li>
-     <li>By converting a bound instance to a different type.</li>
-     <li>For <code><a href="../../../com/google/inject/Provider.html">providers</a></code>, by delegating to the binding for the provided type.</li>
- </ul>
-
-
- <p>They exist on both modules and on injectors, and their behaviour is different for each:
- <ul>
-     <li><strong>Module bindings</strong> are incomplete and cannot be used to provide instances.
-         This is because the applicable scopes and interceptors may not be known until an injector
-         is created. From a tool's perspective, module bindings are like the injector's source
-         code. They can be inspected or rewritten, but this analysis must be done statically.</li>
-     <li><strong>Injector bindings</strong> are complete and valid and can be used to provide
-         instances. From a tools' perspective, injector bindings are like reflection for an
-         injector. They have full runtime information, including the complete graph of injections
-         necessary to satisfy a binding.</li>
- </ul></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">acceptScopingVisitor</span>
-      <span class="normal">(<a href="../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts a scoping visitor. Invokes the visitor method specific to this binding's scoping.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">acceptTargetVisitor</span>
-      <span class="normal">(<a href="../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts a target visitor. Invokes the visitor method specific to this binding's target.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getKey()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the key for this binding.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the scoped provider guice uses to fulfill requests for this
- binding.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>UnsupportedOperationException</td>
-            <td>when invoked on a <code><a href="../../../com/google/inject/Binding.html">Binding</a></code>
-      created via <code><a href="../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Module...)">getElements(Module...)</a></code>. This
-      method is only supported on <code><a href="../../../com/google/inject/Binding.html">Binding</a></code>s returned from an injector.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/BindingAnnotation.html b/javadoc/com/google/inject/BindingAnnotation.html
deleted file mode 100755
index 1d9b673..0000000
--- a/javadoc/com/google/inject/BindingAnnotation.html
+++ /dev/null
@@ -1,609 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  BindingAnnotation
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>BindingAnnotation</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.BindingAnnotation</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Annotates annotations which are used for binding. Only one such annotation
- may apply to a single injection point. You must also annotate binder
- annotations with <code>@Retention(RUNTIME)</code>. For example:
-
- <pre>
-   <code>@</code>Retention(RUNTIME)
-   <code>@</code>Target({ FIELD, PARAMETER, METHOD })
-   <code>@</code>BindingAnnotation
-   public <code>@</code>interface Transactional {}
- </pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/ConfigurationException.html b/javadoc/com/google/inject/ConfigurationException.html
deleted file mode 100755
index eaaeea3..0000000
--- a/javadoc/com/google/inject/ConfigurationException.html
+++ /dev/null
@@ -1,1296 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  ConfigurationException
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>ConfigurationException</h1>
-
-
-
-  
-  
-  
-
-  
-  
-  
-
-  
-  
-  
-
-  
-    extends RuntimeException<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="5" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="4" class="jd-inheritance-class-cell">java.lang.Throwable</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Exception</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.RuntimeException</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.ConfigurationException</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Thrown when a programming error such as a misplaced annotation, illegal binding, or unsupported
- scope is found. Clients should catch this exception, log it, and stop execution.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ConfigurationException.html#ConfigurationException(java.lang.Iterable<com.google.inject.spi.Message>)">ConfigurationException</a></span>(Iterable&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt; messages)</nobr>
-        
-        <div class="jd-descrdiv">Creates a ConfigurationException containing <code>messages</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ConfigurationException.html#getErrorMessages()">getErrorMessages</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns messages for the errors that caused this exception.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ConfigurationException.html#getMessage()">getMessage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;E&gt;
-            E</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ConfigurationException.html#getPartialValue()">getPartialValue</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns a value that was only partially computed due to this exception.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ConfigurationException.html#withPartialValue(java.lang.Object)">withPartialValue</a></span>(Object partialValue)</nobr>
-        
-        <div class="jd-descrdiv">Returns a copy of this configuration exception with the specified partial value.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Throwable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Throwable-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Throwable
-
-<div id="inherited-methods-java.lang.Throwable">
-  <div id="inherited-methods-java.lang.Throwable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Throwable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">fillInStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getCause</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getLocalizedMessage</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getMessage</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            StackTraceElement[]</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initCause</span>(Throwable arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setStackTrace</span>(StackTraceElement[] arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="ConfigurationException(java.lang.Iterable<com.google.inject.spi.Message>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ConfigurationException</span>
-      <span class="normal">(Iterable&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt; messages)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a ConfigurationException containing <code>messages</code>. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getErrorMessages()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt;
-      </span>
-      <span class="sympad">getErrorMessages</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns messages for the errors that caused this exception. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMessage()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getMessage</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getPartialValue()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        E
-      </span>
-      <span class="sympad">getPartialValue</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a value that was only partially computed due to this exception. The caller can use
- this while collecting additional configuration problems.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the partial value, or <code>null</code> if none was set. The type of the partial value is
-      specified by the throwing method.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="withPartialValue(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a>
-      </span>
-      <span class="sympad">withPartialValue</span>
-      <span class="normal">(Object partialValue)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a copy of this configuration exception with the specified partial value. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/CreationException.html b/javadoc/com/google/inject/CreationException.html
deleted file mode 100755
index 45fc294..0000000
--- a/javadoc/com/google/inject/CreationException.html
+++ /dev/null
@@ -1,1187 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  CreationException
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>CreationException</h1>
-
-
-
-  
-  
-  
-
-  
-  
-  
-
-  
-  
-  
-
-  
-    extends RuntimeException<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="5" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="4" class="jd-inheritance-class-cell">java.lang.Throwable</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Exception</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.RuntimeException</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.CreationException</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Thrown when errors occur while creating a <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>. Includes a list of encountered
- errors. Clients should catch this exception, log it, and stop execution.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/CreationException.html#CreationException(java.util.Collection<com.google.inject.spi.Message>)">CreationException</a></span>(Collection&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt; messages)</nobr>
-        
-        <div class="jd-descrdiv">Creates a CreationException containing <code>messages</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/CreationException.html#getErrorMessages()">getErrorMessages</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns messages for the errors that caused this exception.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/CreationException.html#getMessage()">getMessage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Throwable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Throwable-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Throwable
-
-<div id="inherited-methods-java.lang.Throwable">
-  <div id="inherited-methods-java.lang.Throwable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Throwable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">fillInStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getCause</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getLocalizedMessage</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getMessage</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            StackTraceElement[]</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initCause</span>(Throwable arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setStackTrace</span>(StackTraceElement[] arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="CreationException(java.util.Collection<com.google.inject.spi.Message>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">CreationException</span>
-      <span class="normal">(Collection&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt; messages)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a CreationException containing <code>messages</code>. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getErrorMessages()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt;
-      </span>
-      <span class="sympad">getErrorMessages</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns messages for the errors that caused this exception. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMessage()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getMessage</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/Exposed.html b/javadoc/com/google/inject/Exposed.html
deleted file mode 100755
index bec9b86..0000000
--- a/javadoc/com/google/inject/Exposed.html
+++ /dev/null
@@ -1,601 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Exposed
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>Exposed</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Exposed</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Acccompanies a @<code><a href="../../../com/google/inject/Provides.html">Provides</a></code> method annotation in a
- private module to indicate that the provided binding is exposed.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/Guice.html b/javadoc/com/google/inject/Guice.html
deleted file mode 100755
index a039f85..0000000
--- a/javadoc/com/google/inject/Guice.html
+++ /dev/null
@@ -1,1015 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Guice
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>Guice</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Guice</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>The entry point to the Guice framework. Creates <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>s from
- <code><a href="../../../com/google/inject/Module.html">Module</a></code>s.
-
- <p>Guice supports a model of development that draws clear boundaries between
- APIs, Implementations of these APIs, Modules which configure these
- implementations, and finally Applications which consist of a collection of
- Modules. It is the Application, which typically defines your <code>main()</code>
- method, that bootstraps the Guice Injector using the <code>Guice</code> class, as
- in this example:
- <pre>
-     public class FooApplication {
-       public static void main(String[] args) {
-         Injector injector = Guice.createInjector(
-             new ModuleA(),
-             new ModuleB(),
-             . . .
-             new FooApplicationFlagsModule(args)
-         );
-
-         // Now just bootstrap the application and you're done
-         FooStarter starter = injector.getInstance(FooStarter.class);
-         starter.runApplication();
-       }
-     }
- </pre>
-</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../com/google/inject/Injector.html">Injector</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Guice.html#createInjector(com.google.inject.Module...)">createInjector</a></span>(<a href="../../../com/google/inject/Module.html">Module...</a> modules)</nobr>
-        
-        <div class="jd-descrdiv">Creates an injector for the given set of modules.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../com/google/inject/Injector.html">Injector</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Guice.html#createInjector(com.google.inject.Stage, com.google.inject.Module...)">createInjector</a></span>(<a href="../../../com/google/inject/Stage.html">Stage</a> stage, <a href="../../../com/google/inject/Module.html">Module...</a> modules)</nobr>
-        
-        <div class="jd-descrdiv">Creates an injector for the given set of modules, in a given development
- stage.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../com/google/inject/Injector.html">Injector</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Guice.html#createInjector(com.google.inject.Stage, java.lang.Iterable<? extends com.google.inject.Module>)">createInjector</a></span>(<a href="../../../com/google/inject/Stage.html">Stage</a> stage, Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../com/google/inject/Module.html">Module</a>&gt; modules)</nobr>
-        
-        <div class="jd-descrdiv">Creates an injector for the given set of modules, in a given development
- stage.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../com/google/inject/Injector.html">Injector</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Guice.html#createInjector(java.lang.Iterable<? extends com.google.inject.Module>)">createInjector</a></span>(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../com/google/inject/Module.html">Module</a>&gt; modules)</nobr>
-        
-        <div class="jd-descrdiv">Creates an injector for the given set of modules.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="createInjector(com.google.inject.Module...)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Injector.html">Injector</a>
-      </span>
-      <span class="sympad">createInjector</span>
-      <span class="normal">(<a href="../../../com/google/inject/Module.html">Module...</a> modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates an injector for the given set of modules.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/CreationException.html">CreationException</a></td>
-            <td>if one or more errors occur during injector
-     construction
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="createInjector(com.google.inject.Stage, com.google.inject.Module...)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Injector.html">Injector</a>
-      </span>
-      <span class="sympad">createInjector</span>
-      <span class="normal">(<a href="../../../com/google/inject/Stage.html">Stage</a> stage, <a href="../../../com/google/inject/Module.html">Module...</a> modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates an injector for the given set of modules, in a given development
- stage.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/CreationException.html">CreationException</a></td>
-            <td>if one or more errors occur during injector
-     creation.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="createInjector(com.google.inject.Stage, java.lang.Iterable<? extends com.google.inject.Module>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Injector.html">Injector</a>
-      </span>
-      <span class="sympad">createInjector</span>
-      <span class="normal">(<a href="../../../com/google/inject/Stage.html">Stage</a> stage, Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../com/google/inject/Module.html">Module</a>&gt; modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates an injector for the given set of modules, in a given development
- stage.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/CreationException.html">CreationException</a></td>
-            <td>if one or more errors occur during injector
-     construction
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="createInjector(java.lang.Iterable<? extends com.google.inject.Module>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Injector.html">Injector</a>
-      </span>
-      <span class="sympad">createInjector</span>
-      <span class="normal">(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../com/google/inject/Module.html">Module</a>&gt; modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates an injector for the given set of modules.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/CreationException.html">CreationException</a></td>
-            <td>if one or more errors occur during injector
-     creation
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/ImplementedBy.html b/javadoc/com/google/inject/ImplementedBy.html
deleted file mode 100755
index 4b2823a..0000000
--- a/javadoc/com/google/inject/ImplementedBy.html
+++ /dev/null
@@ -1,600 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  ImplementedBy
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>ImplementedBy</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.ImplementedBy</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A pointer to the default implementation of a type.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/Inject.html b/javadoc/com/google/inject/Inject.html
deleted file mode 100755
index 5d306f7..0000000
--- a/javadoc/com/google/inject/Inject.html
+++ /dev/null
@@ -1,621 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Inject
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>Inject</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Inject</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Annotates members of your implementation class (constructors, methods
- and fields) into which the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> should inject values.
- The Injector fulfills injection requests for:
-
- <ul>
- <li>Every instance it constructs. The class being constructed must have
- exactly one of its constructors marked with <code>@Inject</code> or must have a
- constructor taking no parameters. The Injector then proceeds to perform
- method and field injections.
- 
- <li>Pre-constructed instances passed to <code><a href="../../../com/google/inject/Injector.html#injectMembers(java.lang.Object)">injectMembers(Object)</a></code>,
- <code><a href="../../../com/google/inject/binder/LinkedBindingBuilder.html#toInstance(T)">toInstance(Object)</a></code> and
- <code><a href="../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(com.google.inject.Provider<? extends T>)">toProvider(Provider)</a></code>.
- In this case all constructors are, of course, ignored.
-
- <li>Static fields and methods of classes which any <code><a href="../../../com/google/inject/Module.html">Module</a></code> has
- specifically requested static injection for, using
- <code><a href="../../../com/google/inject/Binder.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection(Class<?>...)</a></code>.
- </ul>
-
- In all cases, a member can be injected regardless of its Java access
- specifier (private, default, protected, public).</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/Injector.html b/javadoc/com/google/inject/Injector.html
deleted file mode 100755
index 9b68f5c..0000000
--- a/javadoc/com/google/inject/Injector.html
+++ /dev/null
@@ -1,1623 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Injector
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>Injector</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Injector</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Builds the graphs of objects that make up your application. The injector tracks the dependencies
- for each type and uses bindings to inject them. This is the core of Guice, although you rarely
- interact with it directly. This "behind-the-scenes" operation is what distinguishes dependency
- injection from its cousin, the service locator pattern.
-
- <p>Contains several default bindings:
-
- <ul>
- <li>This <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> instance itself
- <li>A <code>Provider&lt;T&gt;</code> for each binding of type <code>T</code>
- <li>The java.util.logging.Logger for the class being injected
- <li>The <code><a href="../../../com/google/inject/Stage.html">Stage</a></code> in which the Injector was created
- </ul>
-
- Injectors are created using the facade class <code><a href="../../../com/google/inject/Guice.html">Guice</a></code>.
-
- <p>An injector can also <code><a href="../../../com/google/inject/Injector.html#injectMembers(java.lang.Object)">inject the dependencies</a></code> of
- already-constructed instances. This can be used to interoperate with objects created by other
- frameworks or services.
-
- <p>Injectors can be <code><a href="../../../com/google/inject/Injector.html#createChildInjector(java.lang.Iterable<? extends com.google.inject.Module>)">hierarchical</a></code>. Child injectors inherit
- the configuration of their parent injectors, but the converse does not hold.
-
- <p>The injector's <code><a href="../../../com/google/inject/Injector.html#getBindings()">internal bindings</a></code> are available for introspection. This
- enables tools and extensions to operate on an injector reflectively.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Injector.html">Injector</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#createChildInjector(com.google.inject.Module...)">createChildInjector</a></span>(<a href="../../../com/google/inject/Module.html">Module...</a> modules)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new injector that inherits all state from this injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Injector.html">Injector</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#createChildInjector(java.lang.Iterable<? extends com.google.inject.Module>)">createChildInjector</a></span>(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../com/google/inject/Module.html">Module</a>&gt; modules)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new injector that inherits all state from this injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            List&lt;<a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#findBindingsByType(com.google.inject.TypeLiteral<T>)">findBindingsByType</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns all explicit bindings for <code>type</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Map&lt;<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;,&nbsp;<a href="../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getAllBindings()">getAllBindings</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns a snapshot of this injector's bindings, <strong>both explicit and
- just-in-time</strong>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getBinding(com.google.inject.Key<T>)">getBinding</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Returns the binding for the given injection key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getBinding(java.lang.Class<T>)">getBinding</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the binding for the given type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Map&lt;<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;,&nbsp;<a href="../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getBindings()">getBindings</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns this injector's <strong>explicit</strong> bindings.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getExistingBinding(com.google.inject.Key<T>)">getExistingBinding</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Returns the binding if it already exists, or null if does not exist.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getInstance(com.google.inject.Key<T>)">getInstance</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Returns the appropriate instance for the given injection key; equivalent to <code>getProvider(key).get()</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getInstance(java.lang.Class<T>)">getInstance</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the appropriate instance for the given injection type; equivalent to <code>getProvider(type).get()</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-        <div class="jd-descrdiv">Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Injector.html">Injector</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getParent()">getParent</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns this injector's parent, or <code>null</code> if this is a top-level injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Returns the provider used to obtain instances for the given injection key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the provider used to obtain instances for the given type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Map&lt;Class&lt;?&nbsp;extends&nbsp;Annotation&gt;,&nbsp;<a href="../../../com/google/inject/Scope.html">Scope</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getScopeBindings()">getScopeBindings</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns a map containing all scopes in the injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getTypeConverterBindings()">getTypeConverterBindings</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns a set containing all type converter bindings in the injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#injectMembers(java.lang.Object)">injectMembers</a></span>(Object instance)</nobr>
-        
-        <div class="jd-descrdiv">Injects dependencies into the fields and methods of <code>instance</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="createChildInjector(com.google.inject.Module...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Injector.html">Injector</a>
-      </span>
-      <span class="sympad">createChildInjector</span>
-      <span class="normal">(<a href="../../../com/google/inject/Module.html">Module...</a> modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new injector that inherits all state from this injector. All bindings, scopes,
- interceptors and type converters are inherited -- they are visible to the child injector.
- Elements of the child injector are not visible to its parent.
-
- <p>Just-in-time bindings created for child injectors will be created in an ancestor injector
- whenever possible. This allows for scoped instances to be shared between injectors. Use
- explicit bindings to prevent bindings from being shared with the parent injector.
-
- <p>No key may be bound by both an injector and one of its ancestors. This includes just-in-time
- bindings. The lone exception is the key for <code>Injector.class</code>, which is bound by each
- injector to itself.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="createChildInjector(java.lang.Iterable<? extends com.google.inject.Module>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Injector.html">Injector</a>
-      </span>
-      <span class="sympad">createChildInjector</span>
-      <span class="normal">(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../com/google/inject/Module.html">Module</a>&gt; modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new injector that inherits all state from this injector. All bindings, scopes,
- interceptors and type converters are inherited -- they are visible to the child injector.
- Elements of the child injector are not visible to its parent.
-
- <p>Just-in-time bindings created for child injectors will be created in an ancestor injector
- whenever possible. This allows for scoped instances to be shared between injectors. Use
- explicit bindings to prevent bindings from being shared with the parent injector.
-
- <p>No key may be bound by both an injector and one of its ancestors. This includes just-in-time
- bindings. The lone exception is the key for <code>Injector.class</code>, which is bound by each
- injector to itself.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="findBindingsByType(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        List&lt;<a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;&gt;
-      </span>
-      <span class="sympad">findBindingsByType</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns all explicit bindings for <code>type</code>.
-
- <p>This method is part of the Guice SPI and is intended for use by tools and extensions.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getAllBindings()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Map&lt;<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;,&nbsp;<a href="../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getAllBindings</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a snapshot of this injector's bindings, <strong>both explicit and
- just-in-time</strong>. The returned map is immutable; it contains only the bindings that were
- present when <code>getAllBindings()</code> was invoked. Subsequent calls may return a map with
- additional just-in-time bindings.
-
- <p>The returned map does not include bindings inherited from a <code><a href="../../../com/google/inject/Injector.html#getParent()">parent
- injector</a></code>, should one exist.
-
- <p>This method is part of the Guice SPI and is intended for use by tools and extensions.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getBinding(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getBinding</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the binding for the given injection key. This will be an explicit bindings if the key
- was bound explicitly by a module, or an implicit binding otherwise. The implicit binding will
- be created if necessary.
-
- <p>This method is part of the Guice SPI and is intended for use by tools and extensions.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if this injector cannot find or create the binding.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getBinding(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getBinding</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the binding for the given type. This will be an explicit bindings if the injection key
- was bound explicitly by a module, or an implicit binding otherwise. The implicit binding will
- be created if necessary.
-
- <p>This method is part of the Guice SPI and is intended for use by tools and extensions.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if this injector cannot find or create the binding.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getBindings()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Map&lt;<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;,&nbsp;<a href="../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getBindings</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns this injector's <strong>explicit</strong> bindings.
-
- <p>The returned map does not include bindings inherited from a <code><a href="../../../com/google/inject/Injector.html#getParent()">parent
- injector</a></code>, should one exist. The returned map is guaranteed to iterate (for example, with
- its <code><a href="null#entrySet()">entrySet()</a></code> iterator) in the order of insertion. In other words, the order in
- which bindings appear in user Modules.
-
- <p>This method is part of the Guice SPI and is intended for use by tools and extensions.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getExistingBinding(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getExistingBinding</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the binding if it already exists, or null if does not exist. Unlike
- <code><a href="../../../com/google/inject/Injector.html#getBinding(com.google.inject.Key<T>)">getBinding(Key)</a></code>, this does not attempt to create just-in-time bindings
- for keys that aren't bound.
- 
- <p> This method is part of the Guice SPI and is intended for use by tools and extensions.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getInstance(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">getInstance</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the appropriate instance for the given injection key; equivalent to <code>getProvider(key).get()</code>. When feasible, avoid using this method, in favor of having Guice
- inject your dependencies ahead of time.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if this injector cannot find or create the provider.</td>
-        </tr>  
-        <tr>
-            <th><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></td>
-            <td>if there was a runtime failure while providing an instance.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getInstance(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">getInstance</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the appropriate instance for the given injection type; equivalent to <code>getProvider(type).get()</code>. When feasible, avoid using this method, in favor of having Guice
- inject your dependencies ahead of time.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if this injector cannot find or create the provider.</td>
-        </tr>  
-        <tr>
-            <th><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></td>
-            <td>if there was a runtime failure while providing an instance.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>typeLiteral</td>
-          <td>type to get members injector for</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">for an alternative that offers up front error
-  detection</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>. When feasible, use <code><a href="../../../com/google/inject/Binder.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector(TypeLiteral)</a></code>
- instead to get increased up front error detection.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>type</td>
-          <td>type to get members injector for</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getMembersInjector(java.lang.Class<T>)">for an alternative that offers up front error
-  detection</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getParent()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Injector.html">Injector</a>
-      </span>
-      <span class="sympad">getParent</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns this injector's parent, or <code>null</code> if this is a top-level injector.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the provider used to obtain instances for the given injection key. When feasible, avoid
- using this method, in favor of having Guice inject your dependencies ahead of time.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if this injector cannot find or create the provider.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getProvider(com.google.inject.Key<T>)">for an alternative that offers up front error detection
-</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the provider used to obtain instances for the given type. When feasible, avoid
- using this method, in favor of having Guice inject your dependencies ahead of time.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if this injector cannot find or create the provider.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getProvider(java.lang.Class<T>)">for an alternative that offers up front error detection
-</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getScopeBindings()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Map&lt;Class&lt;?&nbsp;extends&nbsp;Annotation&gt;,&nbsp;<a href="../../../com/google/inject/Scope.html">Scope</a>&gt;
-      </span>
-      <span class="sympad">getScopeBindings</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a map containing all scopes in the injector. The maps keys are scoping annotations
- like <code>Singleton.class</code>, and the values are scope instances, such as <code>Scopes.SINGLETON</code>. The returned map is immutable.
-
- <p>This method is part of the Guice SPI and is intended for use by tools and extensions.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTypeConverterBindings()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Set&lt;<a href="../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a>&gt;
-      </span>
-      <span class="sympad">getTypeConverterBindings</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a set containing all type converter bindings in the injector. The returned set is
- immutable.
-
- <p>This method is part of the Guice SPI and is intended for use by tools and extensions.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="injectMembers(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">injectMembers</span>
-      <span class="normal">(Object instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Injects dependencies into the fields and methods of <code>instance</code>. Ignores the presence or
- absence of an injectable constructor.
-
- <p>Whenever Guice creates an instance, it performs this injection automatically (after first
- performing constructor injection), so if you're able to let Guice create all your objects for
- you, you'll never need to use this method.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>instance</td>
-          <td>to inject members on</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getMembersInjector(java.lang.Class<T>)">for a preferred alternative that supports checks before
-  run time
-</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/Key.html b/javadoc/com/google/inject/Key.html
deleted file mode 100755
index 338d851..0000000
--- a/javadoc/com/google/inject/Key.html
+++ /dev/null
@@ -1,1987 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Key
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-  <a href="#proctors">Protected Ctors</a>
-  
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>Key</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Key&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Binding key consisting of an injection type and an optional annotation.
- Matches the type and annotation at a point of injection.
-
- <p>For example, <code>Key.get(Service.class, Transactional.class)</code> will
- match:
-
- <pre>
-   @Inject
-   public void setService(@Transactional Service service) {
-     ...
-   }
- </pre>
-
- <p><code>Key</code> supports generic types via subclassing just like <code><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a></code>.
-
- <p>Keys do not differentiate between primitive types (int, char, etc.) and
- their correpsonding wrapper types (Integer, Character, etc.). Primitive
- types will be replaced with their wrapper types when keys are created.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="proctors" class="jd-sumtable"><tr><th colspan="12">Protected Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#Key()">Key</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Constructs a new key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#Key(java.lang.Class<? extends java.lang.annotation.Annotation>)">Key</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">Constructs a new key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#Key(java.lang.annotation.Annotation)">Key</a></span>(Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">Constructs a new key.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#equals(java.lang.Object)">equals</a></span>(Object o)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#get(com.google.inject.TypeLiteral<T>)">get</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-        <div class="jd-descrdiv">Gets a key for an injection type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#get(com.google.inject.TypeLiteral<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)">get</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">Gets a key for an injection type and an annotation type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#get(com.google.inject.TypeLiteral<T>, java.lang.annotation.Annotation)">get</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral, Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">Gets a key for an injection type and an annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#get(java.lang.Class<T>)">get</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Gets a key for an injection type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#get(java.lang.Class<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)">get</a></span>(Class&lt;T&gt; type, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">Gets a key for an injection type and an annotation type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#get(java.lang.Class<T>, java.lang.annotation.Annotation)">get</a></span>(Class&lt;T&gt; type, Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">Gets a key for an injection type and an annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#get(java.lang.reflect.Type)">get</a></span>(Type type)</nobr>
-        
-        <div class="jd-descrdiv">Gets a key for an injection type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#get(java.lang.reflect.Type, java.lang.Class<? extends java.lang.annotation.Annotation>)">get</a></span>(Type type, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">Gets a key for an injection type and an annotation type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#get(java.lang.reflect.Type, java.lang.annotation.Annotation)">get</a></span>(Type type, Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">Gets a key for an injection type and an annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Annotation</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#getAnnotation()">getAnnotation</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#getAnnotationType()">getAnnotationType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the annotation type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#getTypeLiteral()">getTypeLiteral</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the key type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#hasAttributes()">hasAttributes</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns true if this key has annotation attributes.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#hashCode()">hashCode</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#ofType(com.google.inject.TypeLiteral<T>)">ofType</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new key of the specified type with the same annotation as this
- key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#ofType(java.lang.Class<T>)">ofType</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new key of the specified type with the same annotation as this
- key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#ofType(java.lang.reflect.Type)">ofType</a></span>(Type type)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new key of the specified type with the same annotation as this
- key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#withoutAttributes()">withoutAttributes</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns this key without annotation attributes, i.e.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-<h2>Protected Constructors</h2>
-
-
-
-<A NAME="Key()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">Key</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Constructs a new key. Derives the type from this class's type parameter.
-
- <p>Clients create an empty anonymous subclass. Doing so embeds the type
- parameter in the anonymous class's type hierarchy so we can reconstitute it
- at runtime despite erasure.
-
- <p>Example usage for a binding of type <code>Foo</code>:
-
- <p><code>new Key&lt;Foo&gt;() {</code>}.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="Key(java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">Key</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Constructs a new key. Derives the type from this class's type parameter.
-
- <p>Clients create an empty anonymous subclass. Doing so embeds the type
- parameter in the anonymous class's type hierarchy so we can reconstitute it
- at runtime despite erasure.
-
- <p>Example usage for a binding of type <code>Foo</code> annotated with
- <code>@Bar</code>:
-
- <p><code>new Key&lt;Foo&gt;(Bar.class) {</code>}.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="Key(java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">Key</span>
-      <span class="normal">(Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Constructs a new key. Derives the type from this class's type parameter.
-
- <p>Clients create an empty anonymous subclass. Doing so embeds the type
- parameter in the anonymous class's type hierarchy so we can reconstitute it
- at runtime despite erasure.
-
- <p>Example usage for a binding of type <code>Foo</code> annotated with
- <code>@Bar</code>:
-
- <p><code>new Key&lt;Foo&gt;(new Bar()) {</code>}.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="equals(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        boolean
-      </span>
-      <span class="sympad">equals</span>
-      <span class="normal">(Object o)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(com.google.inject.TypeLiteral<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type and an annotation type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(com.google.inject.TypeLiteral<T>, java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral, Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type and an annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(java.lang.Class<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(Class&lt;T&gt; type, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type and an annotation type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(java.lang.Class<T>, java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(Class&lt;T&gt; type, Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type and an annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(Type type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(java.lang.reflect.Type, java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(Type type, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type and an annotation type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(java.lang.reflect.Type, java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(Type type, Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type and an annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getAnnotation()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        Annotation
-      </span>
-      <span class="sympad">getAnnotation</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getAnnotationType()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        Class&lt;?&nbsp;extends&nbsp;Annotation&gt;
-      </span>
-      <span class="sympad">getAnnotationType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the annotation type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTypeLiteral()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getTypeLiteral</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the key type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="hasAttributes()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        boolean
-      </span>
-      <span class="sympad">hasAttributes</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if this key has annotation attributes.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="hashCode()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        int
-      </span>
-      <span class="sympad">hashCode</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="ofType(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">ofType</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new key of the specified type with the same annotation as this
- key.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="ofType(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">ofType</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new key of the specified type with the same annotation as this
- key.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="ofType(java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;
-      </span>
-      <span class="sympad">ofType</span>
-      <span class="normal">(Type type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new key of the specified type with the same annotation as this
- key.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="withoutAttributes()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">withoutAttributes</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns this key without annotation attributes, i.e. with only the
- annotation type.</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/MembersInjector.html b/javadoc/com/google/inject/MembersInjector.html
deleted file mode 100755
index 348b50e..0000000
--- a/javadoc/com/google/inject/MembersInjector.html
+++ /dev/null
@@ -1,553 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  MembersInjector
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>MembersInjector</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.MembersInjector&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Injects dependencies into the fields and methods on instances of type <code>T</code>. Ignores the
- presence or absence of an injectable constructor.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/MembersInjector.html#injectMembers(T)">injectMembers</a></span>(T instance)</nobr>
-        
-        <div class="jd-descrdiv">Injects dependencies into the fields and methods of <code>instance</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="injectMembers(T)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">injectMembers</span>
-      <span class="normal">(T instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Injects dependencies into the fields and methods of <code>instance</code>. Ignores the presence or
- absence of an injectable constructor.
-
- <p>Whenever Guice creates an instance, it performs this injection automatically (after first
- performing constructor injection), so if you're able to let Guice create all your objects for
- you, you'll never need to use this method.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>instance</td>
-          <td>to inject members on. May be <code>null</code>.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/Module.html b/javadoc/com/google/inject/Module.html
deleted file mode 100755
index 480414f..0000000
--- a/javadoc/com/google/inject/Module.html
+++ /dev/null
@@ -1,644 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Module
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>Module</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Module</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a>,
-            
-              <a href="../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a>,
-            
-              <a href="../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a>,
-            
-              <a href="../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a>,
-            
-              <a href="../../../com/google/inject/persist/PersistModule.html">PersistModule</a>,
-            
-              <a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a>,
-            
-              <a href="../../../com/google/inject/servlet/ServletModule.html">ServletModule</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></td>
-              <td class="jd-descrcol" width="100%">A support class for <code><a href="../../../com/google/inject/Module.html">Module</a></code>s which reduces repetition and results in
- a more readable configuration.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></td>
-              <td class="jd-descrcol" width="100%">Module for the common bindings for <code><a href="../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></td>
-              <td class="jd-descrcol" width="100%">Module that provides <code><a href="../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></code> as the <code><a href="../../../com/google/inject/grapher/Renderer.html">Renderer</a></code> and
- binds the other Graphviz factories.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></td>
-              <td class="jd-descrcol" width="100%">JPA provider for guice persist.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/persist/PersistModule.html">PersistModule</a></td>
-              <td class="jd-descrcol" width="100%">Install this module to add guice-persist library support for JPA persistence
- providers.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></td>
-              <td class="jd-descrcol" width="100%">A module whose configuration information is hidden from its environment by default.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></td>
-              <td class="jd-descrcol" width="100%">Configures the servlet scopes and creates bindings for the servlet API
- objects so you can inject the request, response, session, etc.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A module contributes configuration information, typically interface
- bindings, which will be used to create an <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>. A Guice-based
- application is ultimately composed of little more than a set of
- <code>Module</code>s and some bootstrapping code.
-
- <p>Your Module classes can use a more streamlined syntax by extending
- <code><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></code> rather than implementing this interface directly.
-
- <p>In addition to the bindings configured via <code><a href="../../../com/google/inject/Module.html#configure(com.google.inject.Binder)">configure(Binder)</a></code>, bindings
- will be created for all methods annotated with @<code><a href="../../../com/google/inject/Provides.html">Provides</a></code>.
- Use scope and binding annotations on these methods to configure the
- bindings.
-</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Module.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="configure(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">configure</span>
-      <span class="normal">(<a href="../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Contributes bindings and other configurations for this module to <code>binder</code>.
-
- <p><strong>Do not invoke this method directly</strong> to install submodules. Instead use
- <code><a href="../../../com/google/inject/Binder.html#install(com.google.inject.Module)">install(Module)</a></code>, which ensures that <code><a href="../../../com/google/inject/Provides.html">provider methods</a></code> are
- discovered.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/OutOfScopeException.html b/javadoc/com/google/inject/OutOfScopeException.html
deleted file mode 100755
index 8c5f6c5..0000000
--- a/javadoc/com/google/inject/OutOfScopeException.html
+++ /dev/null
@@ -1,1166 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  OutOfScopeException
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>OutOfScopeException</h1>
-
-
-
-  
-  
-  
-
-  
-  
-  
-
-  
-  
-  
-
-  
-    extends RuntimeException<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="5" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="4" class="jd-inheritance-class-cell">java.lang.Throwable</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Exception</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.RuntimeException</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.OutOfScopeException</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Thrown from <code><a href="../../../com/google/inject/Provider.html#get()">get()</a></code> when an attempt is made to access a scoped
- object while the scope in question is not currently active.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/OutOfScopeException.html#OutOfScopeException(java.lang.String)">OutOfScopeException</a></span>(String message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/OutOfScopeException.html#OutOfScopeException(java.lang.String, java.lang.Throwable)">OutOfScopeException</a></span>(String message, Throwable cause)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/OutOfScopeException.html#OutOfScopeException(java.lang.Throwable)">OutOfScopeException</a></span>(Throwable cause)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Throwable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Throwable-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Throwable
-
-<div id="inherited-methods-java.lang.Throwable">
-  <div id="inherited-methods-java.lang.Throwable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Throwable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">fillInStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getCause</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getLocalizedMessage</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getMessage</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            StackTraceElement[]</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initCause</span>(Throwable arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setStackTrace</span>(StackTraceElement[] arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="OutOfScopeException(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">OutOfScopeException</span>
-      <span class="normal">(String message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="OutOfScopeException(java.lang.String, java.lang.Throwable)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">OutOfScopeException</span>
-      <span class="normal">(String message, Throwable cause)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="OutOfScopeException(java.lang.Throwable)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">OutOfScopeException</span>
-      <span class="normal">(Throwable cause)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/PrivateBinder.html b/javadoc/com/google/inject/PrivateBinder.html
deleted file mode 100755
index 0f74dda..0000000
--- a/javadoc/com/google/inject/PrivateBinder.html
+++ /dev/null
@@ -1,1310 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  PrivateBinder
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>PrivateBinder</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../com/google/inject/Binder.html">Binder</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.PrivateBinder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Returns a binder whose configuration information is hidden from its environment by default. See
- <code><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></code> for details.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateBinder.html#expose(com.google.inject.Key<?>)">expose</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Makes the binding for <code>key</code> available to the enclosing environment </div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateBinder.html#expose(com.google.inject.TypeLiteral<?>)">expose</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Makes a binding for <code>type</code> available to the enclosing environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateBinder.html#expose(java.lang.Class<?>)">expose</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Makes a binding for <code>type</code> available to the enclosing environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateBinder.html#skipSources(java.lang.Class...)">skipSources</a></span>(Class... classesToSkip)</nobr>
-        
-        <div class="jd-descrdiv">Returns a binder that skips <code>classesToSkip</code> when identify the
- calling code.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateBinder.html#withSource(java.lang.Object)">withSource</a></span>(Object source)</nobr>
-        
-        <div class="jd-descrdiv">Returns a binder that uses <code>source</code> as the reference location for
- configuration errors.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binder" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binder-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../com/google/inject/Binder.html">com.google.inject.Binder</a>
-
-<div id="inherited-methods-com.google.inject.Binder">
-  <div id="inherited-methods-com.google.inject.Binder-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binder-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-        <div class="jd-descrdiv">Records an error message to be presented to the user at a later time.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-        <div class="jd-descrdiv">Records an error message which will be presented to the user at a later
- time.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-        <div class="jd-descrdiv">Records an exception, the full details of which will be logged, and the
- message of which will be presented to the user at a later
- time.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bind(com.google.inject.Key<T>)">bind</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bind(com.google.inject.TypeLiteral<T>)">bind</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bind(java.lang.Class<T>)">bind</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bindConstant()">bindConstant</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-        <div class="jd-descrdiv">Binds method interceptor[s] to methods matched by class and method matchers.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</nobr>
-        
-        <div class="jd-descrdiv">Registers a listener for injectable types.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, <a href="../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-        <div class="jd-descrdiv">Binds a scope to an annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</nobr>
-        
-        <div class="jd-descrdiv">Binds a type converter.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#currentStage()">currentStage</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the current stage.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#disableCircularProxies()">disableCircularProxies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Prevents Guice from constructing a Proxy when a circular dependency
- is found.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-        <div class="jd-descrdiv">Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Returns the provider used to obtain instances for the given injection key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the provider used to obtain instances for the given injection type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#install(com.google.inject.Module)">install</a></span>(<a href="../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-        <div class="jd-descrdiv">Uses the given module to configure more bindings.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#newPrivateBinder()">newPrivateBinder</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Creates a new private child environment for bindings and other configuration.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#requestInjection(com.google.inject.TypeLiteral<T>, T)">requestInjection</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type, T instance)</nobr>
-        
-        <div class="jd-descrdiv">Upon successful creation, the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> will inject instance fields
- and methods of the given object.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#requestInjection(java.lang.Object)">requestInjection</a></span>(Object instance)</nobr>
-        
-        <div class="jd-descrdiv">Upon successful creation, the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> will inject instance fields
- and methods of the given object.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection</a></span>(Class...&lt;?&gt; types)</nobr>
-        
-        <div class="jd-descrdiv">Upon successful creation, the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> will inject static fields
- and methods in the given classes.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#requireExplicitBindings()">requireExplicitBindings</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Instructs the Injector that bindings must be listed in a Module in order to
- be injected.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#skipSources(java.lang.Class...)">skipSources</a></span>(Class... classesToSkip)</nobr>
-        
-        <div class="jd-descrdiv">Returns a binder that skips <code>classesToSkip</code> when identify the
- calling code.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#withSource(java.lang.Object)">withSource</a></span>(Object source)</nobr>
-        
-        <div class="jd-descrdiv">Returns a binder that uses <code>source</code> as the reference location for
- configuration errors.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="expose(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">expose</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Makes the binding for <code>key</code> available to the enclosing environment </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="expose(com.google.inject.TypeLiteral<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a>
-      </span>
-      <span class="sympad">expose</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Makes a binding for <code>type</code> available to the enclosing environment. Use <code><a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html#annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)">annotatedWith()</a></code> to expose <code>type</code> with a
- binding annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="expose(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a>
-      </span>
-      <span class="sympad">expose</span>
-      <span class="normal">(Class&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Makes a binding for <code>type</code> available to the enclosing environment. Use <code><a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html#annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)">annotatedWith()</a></code> to expose <code>type</code> with a
- binding annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="skipSources(java.lang.Class...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a>
-      </span>
-      <span class="sympad">skipSources</span>
-      <span class="normal">(Class... classesToSkip)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a binder that skips <code>classesToSkip</code> when identify the
- calling code. The caller's StackTraceElement is used to locate
- the source of configuration errors.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>classesToSkip</td>
-          <td>library classes that create bindings on behalf of
-      their clients.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a binder that shares its configuration with this binder.</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="withSource(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a>
-      </span>
-      <span class="sympad">withSource</span>
-      <span class="normal">(Object source)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a binder that uses <code>source</code> as the reference location for
- configuration errors. This is typically a StackTraceElement
- for <code>.java</code> source but it could any binding source, such as the
- path to a <code>.properties</code> file.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>source</td>
-          <td>any object representing the source location and has a
-     concise <code><a href="null#toString()">toString()</a></code> value</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a binder that shares its configuration with this binder</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/PrivateModule.html b/javadoc/com/google/inject/PrivateModule.html
deleted file mode 100755
index 912fa99..0000000
--- a/javadoc/com/google/inject/PrivateModule.html
+++ /dev/null
@@ -1,2373 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  PrivateModule
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    class
-<h1>PrivateModule</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../com/google/inject/Module.html">Module</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.PrivateModule</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A module whose configuration information is hidden from its environment by default. Only bindings
- that are explicitly exposed will be available to other modules and to the users of the injector.
- This module may expose the bindings it creates and the bindings of the modules it installs.
-
- <p>A private module can be nested within a regular module or within another private module using
- <code><a href="../../../com/google/inject/Binder.html#install(com.google.inject.Module)">install()</a></code>.  Its bindings live in a new environment that inherits bindings,
- type converters, scopes, and interceptors from the surrounding ("parent") environment.  When you
- nest multiple private modules, the result is a tree of environments where the injector's
- environment is the root.
-
- <p>Guice EDSL bindings can be exposed with <code><a href="../../../com/google/inject/PrivateModule.html#expose(java.lang.Class<?>)">expose()</a></code>. @<code><a href="../../../com/google/inject/Provides.html">Provides</a></code> bindings can be exposed with the @<code><a href="../../../com/google/inject/Exposed.html">Exposed</a></code> annotation:
-
- <pre>
- public class FooBarBazModule extends PrivateModule {
-   protected void configure() {
-     bind(Foo.class).to(RealFoo.class);
-     expose(Foo.class);
-
-     install(new TransactionalBarModule());
-     expose(Bar.class).annotatedWith(Transactional.class);
-
-     bind(SomeImplementationDetail.class);
-     install(new MoreImplementationDetailsModule());
-   }
-
-   @Provides @Exposed
-   public Baz provideBaz() {
-     return new SuperBaz();
-   }
- }
- </pre>
-
- <p>Private modules are implemented using <code><a href="../../../com/google/inject/Injector.html#createChildInjector(com.google.inject.Module...)">parent
- injectors</a></code>. When it can satisfy their dependencies, just-in-time bindings will be created in the
- root environment. Such bindings are shared among all environments in the tree.
- 
- <p>The scope of a binding is constrained to its environment. A singleton bound in a private
- module will be unique to its environment. But a binding for the same type in a different private
- module will yield a different instance.
-
- <p>A shared binding that injects the <code>Injector</code> gets the root injector, which only has
- access to bindings in the root environment. An explicit binding that injects the <code>Injector</code>
- gets access to all bindings in the child environment.
-
- <p>To promote a just-in-time binding to an explicit binding, bind it:
- <pre>
-   bind(FooImpl.class);
- </pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#PrivateModule()">PrivateModule</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#bind(com.google.inject.Key<T>)">bind</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#bind(com.google.inject.TypeLiteral<T>)">bind</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#bind(java.lang.Class<T>)">bind</a></span>(Class&lt;T&gt; clazz)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#bindConstant()">bindConstant</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation, <a href="../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#binder()">binder</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the current binder.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Creates bindings and other configurations private to this module.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#currentStage()">currentStage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            &lt;T&gt;
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#expose(com.google.inject.Key<T>)">expose</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Makes the binding for <code>key</code> available to other modules and the injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#expose(com.google.inject.TypeLiteral<?>)">expose</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Makes a binding for <code>type</code> available to other modules and the injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#expose(java.lang.Class<?>)">expose</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Makes a binding for <code>type</code> available to other modules and the injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#install(com.google.inject.Module)">install</a></span>(<a href="../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#requestInjection(java.lang.Object)">requestInjection</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection</a></span>(Class...&lt;?&gt; types)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#requireBinding(com.google.inject.Key<?>)">requireBinding</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Instructs Guice to require a binding to the given key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#requireBinding(java.lang.Class<?>)">requireBinding</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Instructs Guice to require a binding to the given type.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Module" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Module-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../com/google/inject/Module.html">com.google.inject.Module</a>
-
-<div id="inherited-methods-com.google.inject.Module">
-  <div id="inherited-methods-com.google.inject.Module-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Module-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Module.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="PrivateModule()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">PrivateModule</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="configure(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-        synchronized 
-        void
-      </span>
-      <span class="sympad">configure</span>
-      <span class="normal">(<a href="../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Contributes bindings and other configurations for this module to <code>binder</code>.
-
- <p><strong>Do not invoke this method directly</strong> to install submodules. Instead use
- <code><a href="../../../com/google/inject/Binder.html#install(com.google.inject.Module)">install(Module)</a></code>, which ensures that <code><a href="../../../com/google/inject/Provides.html">provider methods</a></code> are
- discovered.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="addError(com.google.inject.spi.Message)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(<a href="../../../com/google/inject/spi/Message.html">Message</a> message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#addError(com.google.inject.spi.Message)">addError(Message)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="addError(java.lang.String, java.lang.Object...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(String message, Object... arguments)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#addError(java.lang.String, java.lang.Object...)">addError(String, Object[])</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="addError(java.lang.Throwable)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(Throwable t)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#addError(java.lang.Throwable)">addError(Throwable)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bind(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bind(com.google.inject.Key<T>)">bind(Key)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bind(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bind(com.google.inject.TypeLiteral<T>)">bind(TypeLiteral)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bind(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(Class&lt;T&gt; clazz)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bind(java.lang.Class<T>)">bind(Class)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindConstant()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a>
-      </span>
-      <span class="sympad">bindConstant</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bindConstant()">bindConstant()</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">bindInterceptor</span>
-      <span class="normal">(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor(com.google.inject.matcher.Matcher, com.google.inject.matcher.Matcher, org.aopalliance.intercept.MethodInterceptor[])</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">bindListener</span>
-      <span class="normal">(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener(com.google.inject.matcher.Matcher, com.google.inject.spi.TypeListener)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">bindScope</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation, <a href="../../../com/google/inject/Scope.html">Scope</a> scope)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope(Class, Scope)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="binder()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a>
-      </span>
-      <span class="sympad">binder</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the current binder.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="configure()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">configure</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates bindings and other configurations private to this module. Use <code><a href="../../../com/google/inject/PrivateModule.html#expose(java.lang.Class<?>)">expose()</a></code> to make the bindings in this module available externally.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">convertToTypes</span>
-      <span class="normal">(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes(com.google.inject.matcher.Matcher, com.google.inject.spi.TypeConverter)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="currentStage()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/Stage.html">Stage</a>
-      </span>
-      <span class="sympad">currentStage</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#currentStage()">currentStage()</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="expose(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">expose</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Makes the binding for <code>key</code> available to other modules and the injector. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="expose(com.google.inject.TypeLiteral<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a>
-      </span>
-      <span class="sympad">expose</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Makes a binding for <code>type</code> available to other modules and the injector. Use <code><a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html#annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)">annotatedWith()</a></code> to expose <code>type</code> with a
- binding annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="expose(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a>
-      </span>
-      <span class="sympad">expose</span>
-      <span class="normal">(Class&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Makes a binding for <code>type</code> available to other modules and the injector. Use <code><a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html#annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)">annotatedWith()</a></code> to expose <code>type</code> with a
- binding annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector(TypeLiteral)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector(Class)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getProvider(com.google.inject.Key<T>)">getProvider(Key)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getProvider(java.lang.Class<T>)">getProvider(Class)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="install(com.google.inject.Module)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">install</span>
-      <span class="normal">(<a href="../../../com/google/inject/Module.html">Module</a> module)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#install(com.google.inject.Module)">install(Module)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requestInjection(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">requestInjection</span>
-      <span class="normal">(Object instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#requestInjection(java.lang.Object)">requestInjection(Object)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requestStaticInjection(java.lang.Class<?>...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">requestStaticInjection</span>
-      <span class="normal">(Class...&lt;?&gt; types)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection(Class[])</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requireBinding(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">requireBinding</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Instructs Guice to require a binding to the given key.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="requireBinding(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">requireBinding</span>
-      <span class="normal">(Class&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Instructs Guice to require a binding to the given type.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/ProvidedBy.html b/javadoc/com/google/inject/ProvidedBy.html
deleted file mode 100755
index aa01e8f..0000000
--- a/javadoc/com/google/inject/ProvidedBy.html
+++ /dev/null
@@ -1,600 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  ProvidedBy
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>ProvidedBy</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.ProvidedBy</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A pointer to the default provider type for a type.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/Provider.html b/javadoc/com/google/inject/Provider.html
deleted file mode 100755
index 3debb8a..0000000
--- a/javadoc/com/google/inject/Provider.html
+++ /dev/null
@@ -1,703 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Provider
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>Provider</h1>
-
-
-
-  
-  
-      implements 
-      
-        Provider&lt;T&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Provider&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;,
-            
-              <a href="../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;,
-            
-              <a href="../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</td>
-              <td class="jd-descrcol" width="100%">
-      <em>
-  This class is deprecated.
-      use <code><a href="../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code> instead.
-</em>&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A provider with dependencies on other injected types.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A Provider that is part of an extension which supports a custom
- BindingTargetVisitor.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>An object capable of providing instances of type <code>T</code>. Providers are used in numerous ways
- by Guice:
-
- <ul>
- <li>When the default means for obtaining instances (an injectable or parameterless constructor)
- is insufficient for a particular binding, the module can specify a custom <code>Provider</code>
- instead, to control exactly how Guice creates or obtains instances for the binding.
-
- <li>An implementation class may always choose to have a <code>Provider&lt;T&gt;</code> instance injected,
- rather than having a <code>T</code> injected directly.  This may give you access to multiple
- instances, instances you wish to safely mutate and discard, instances which are out of scope
- (e.g. using a <code>@RequestScoped</code> object from within a <code>@SessionScoped</code> object), or
- instances that will be initialized lazily.
-
- <li>A custom <code><a href="../../../com/google/inject/Scope.html">Scope</a></code> is implemented as a decorator of <code>Provider&lt;T&gt;</code>, which decides
- when to delegate to the backing provider and when to provide the instance some other way.
-
- <li>The <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> offers access to the <code>Provider&lt;T&gt;</code> it uses to fulfill requests
- for a given key, via the <code><a href="../../../com/google/inject/Injector.html#getProvider(com.google.inject.Key<T>)">getProvider(Key<T>)</a></code> methods.
- </ul></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Provider.html#get()">get</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Provides an instance of <code>T</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-javax.inject.Provider" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-javax.inject.Provider-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  javax.inject.Provider
-
-<div id="inherited-methods-javax.inject.Provider">
-  <div id="inherited-methods-javax.inject.Provider-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-javax.inject.Provider-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">get</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="get()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Provides an instance of <code>T</code>. Must never return <code>null</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></td>
-            <td>when an attempt is made to access a scoped object while the scope
-     in question is not currently active</td>
-        </tr>  
-        <tr>
-            <th><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></td>
-            <td>if an instance cannot be provided. Such exceptions include messages
-     and throwables to describe why provision failed.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/Provides.html b/javadoc/com/google/inject/Provides.html
deleted file mode 100755
index 58c1a64..0000000
--- a/javadoc/com/google/inject/Provides.html
+++ /dev/null
@@ -1,601 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Provides
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>Provides</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Provides</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Annotates methods of a <code><a href="../../../com/google/inject/Module.html">Module</a></code> to create a provider method binding. The method's return
- type is bound to it's returned value. Guice will pass dependencies to the method as parameters.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/ProvisionException.html b/javadoc/com/google/inject/ProvisionException.html
deleted file mode 100755
index 95c600d..0000000
--- a/javadoc/com/google/inject/ProvisionException.html
+++ /dev/null
@@ -1,1284 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  ProvisionException
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>ProvisionException</h1>
-
-
-
-  
-  
-  
-
-  
-  
-  
-
-  
-  
-  
-
-  
-    extends RuntimeException<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="5" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="4" class="jd-inheritance-class-cell">java.lang.Throwable</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Exception</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.RuntimeException</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.ProvisionException</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Indicates that there was a runtime failure while providing an instance.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ProvisionException.html#ProvisionException(java.lang.Iterable<com.google.inject.spi.Message>)">ProvisionException</a></span>(Iterable&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt; messages)</nobr>
-        
-        <div class="jd-descrdiv">Creates a ConfigurationException containing <code>messages</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ProvisionException.html#ProvisionException(java.lang.String)">ProvisionException</a></span>(String message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ProvisionException.html#ProvisionException(java.lang.String, java.lang.Throwable)">ProvisionException</a></span>(String message, Throwable cause)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ProvisionException.html#getErrorMessages()">getErrorMessages</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns messages for the errors that caused this exception.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ProvisionException.html#getMessage()">getMessage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Throwable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Throwable-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Throwable
-
-<div id="inherited-methods-java.lang.Throwable">
-  <div id="inherited-methods-java.lang.Throwable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Throwable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">fillInStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getCause</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getLocalizedMessage</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getMessage</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            StackTraceElement[]</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initCause</span>(Throwable arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setStackTrace</span>(StackTraceElement[] arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="ProvisionException(java.lang.Iterable<com.google.inject.spi.Message>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ProvisionException</span>
-      <span class="normal">(Iterable&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt; messages)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a ConfigurationException containing <code>messages</code>. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="ProvisionException(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ProvisionException</span>
-      <span class="normal">(String message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="ProvisionException(java.lang.String, java.lang.Throwable)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ProvisionException</span>
-      <span class="normal">(String message, Throwable cause)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getErrorMessages()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt;
-      </span>
-      <span class="sympad">getErrorMessages</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns messages for the errors that caused this exception. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMessage()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getMessage</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/Scope.html b/javadoc/com/google/inject/Scope.html
deleted file mode 100755
index ca02803..0000000
--- a/javadoc/com/google/inject/Scope.html
+++ /dev/null
@@ -1,627 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Scope
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>Scope</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Scope</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A scope is a level of visibility that instances provided by Guice may have.
- By default, an instance created by the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> has <i>no scope</i>,
- meaning it has no state from the framework's perspective -- the
- <code>Injector</code> creates it, injects it once into the class that required it,
- and then immediately forgets it. Associating a scope with a particular
- binding allows the created instance to be "remembered" and possibly used
- again for other injections.
-
- <p>An example of a scope is <code><a href="../../../com/google/inject/Scopes.html#SINGLETON">SINGLETON</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Scope.html#scope(com.google.inject.Key<T>, com.google.inject.Provider<T>)">scope</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key, <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt; unscoped)</nobr>
-        
-        <div class="jd-descrdiv">Scopes a provider.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Scope.html#toString()">toString</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">A short but useful description of this scope.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="scope(com.google.inject.Key<T>, com.google.inject.Provider<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">scope</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key, <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt; unscoped)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Scopes a provider. The returned provider returns objects from this scope.
- If an object does not exist in this scope, the provider can use the given
- unscoped provider to retrieve one.
-
- <p>Scope implementations are strongly encouraged to override
- <code><a href="null#toString()">toString()</a></code> in the returned provider and include the backing
- provider's <code>toString()</code> output.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>key</td>
-          <td>binding key</td>
-        </tr>
-        <tr>
-          <th>unscoped</td>
-          <td>locates an instance when one doesn't already exist in this
-  scope.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a new provider which only delegates to the given unscoped provider
-  when an instance of the requested object doesn't already exist in this
-  scope
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>A short but useful description of this scope.  For comparison, the standard
- scopes that ship with guice use the descriptions
- <code>"Scopes.SINGLETON"</code>, <code>"ServletScopes.SESSION"</code> and
- <code>"ServletScopes.REQUEST"</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/ScopeAnnotation.html b/javadoc/com/google/inject/ScopeAnnotation.html
deleted file mode 100755
index 5c6e16a..0000000
--- a/javadoc/com/google/inject/ScopeAnnotation.html
+++ /dev/null
@@ -1,609 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  ScopeAnnotation
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>ScopeAnnotation</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.ScopeAnnotation</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Annotates annotations which are used for scoping. Only one such annotation
- may apply to a single implementation class. You must also annotate scope
- annotations with <code>@Retention(RUNTIME)</code>. For example:
-
- <pre>
-   <code>@</code>Retention(RUNTIME)
-   <code>@</code>Target(TYPE, METHOD)
-   <code>@</code>ScopeAnnotation
-   public <code>@</code>interface SessionScoped {}
- </pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/Scopes.html b/javadoc/com/google/inject/Scopes.html
deleted file mode 100755
index 1ae4bbf..0000000
--- a/javadoc/com/google/inject/Scopes.html
+++ /dev/null
@@ -1,896 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Scopes
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-  <a href="#constants">Constants</a>
-  
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>Scopes</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Scopes</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Built-in scope implementations.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-
-    
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><a href="../../../com/google/inject/Scope.html">Scope</a></td>
-        <td class="jd-linkcol"><a href="../../../com/google/inject/Scopes.html#NO_SCOPE">NO_SCOPE</a></td>
-        <td class="jd-descrcol" width="100%">No scope; the same as not applying any scope at all.</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><a href="../../../com/google/inject/Scope.html">Scope</a></td>
-        <td class="jd-linkcol"><a href="../../../com/google/inject/Scopes.html#SINGLETON">SINGLETON</a></td>
-        <td class="jd-descrcol" width="100%">One instance per <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>.</td>
-    </tr>
-    
-    
-
-</table>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Scopes.html#isSingleton(com.google.inject.Binding<?>)">isSingleton</a></span>(<a href="../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Returns true if <code>binding</code> is singleton-scoped.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Constants</h2>
-
-
-
-
-<A NAME="NO_SCOPE"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../com/google/inject/Scope.html">Scope</a>
-      </span>
-        NO_SCOPE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>No scope; the same as not applying any scope at all.  Each time the
- Injector obtains an instance of an object with "no scope", it injects this
- instance then immediately forgets it.  When the next request for the same
- binding arrives it will need to obtain the instance over again.
-
- <p>This exists only in case a class has been annotated with a scope
- annotation such as <code><a href="../../../com/google/inject/Singleton.html">@Singleton</a></code>, and you need to override
- this to "no scope" in your binding.</p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="SINGLETON"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../com/google/inject/Scope.html">Scope</a>
-      </span>
-        SINGLETON
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>One instance per <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>. Also see <code>@</code><code><a href="../../../com/google/inject/Singleton.html">Singleton</a></code>.
-</p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="isSingleton(com.google.inject.Binding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        boolean
-      </span>
-      <span class="sympad">isSingleton</span>
-      <span class="normal">(<a href="../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if <code>binding</code> is singleton-scoped. If the binding is a <code><a href="../../../com/google/inject/spi/LinkedKeyBinding.html">linked key binding</a></code> and belongs to an injector (ie. it
- was retrieved via <code><a href="../../../com/google/inject/Injector.html#getBinding(com.google.inject.Key<T>)">Injector.getBinding()</a></code>), then this method will
- also true if the target binding is singleton-scoped.</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/Singleton.html b/javadoc/com/google/inject/Singleton.html
deleted file mode 100755
index 95977f2..0000000
--- a/javadoc/com/google/inject/Singleton.html
+++ /dev/null
@@ -1,601 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Singleton
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>Singleton</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Singleton</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Apply this to implementation classes when you want only one instance
- (per <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>) to be reused for all injections for that binding.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/Stage.html b/javadoc/com/google/inject/Stage.html
deleted file mode 100755
index 70c87d3..0000000
--- a/javadoc/com/google/inject/Stage.html
+++ /dev/null
@@ -1,1256 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Stage
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-  <a href="#enumconstants">Enums</a>
-  
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    enum
-<h1>Stage</h1>
-
-
-
-  
-  
-  
-
-  
-    extends Enum&lt;E&nbsp;extends&nbsp;Enum&lt;E&gt;&gt;<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Enum&lt;E&nbsp;extends&nbsp;java.lang.Enum&lt;E&gt;&gt;</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Stage</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>The stage we're running in.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../com/google/inject/Stage.html">Stage</a>&nbsp;</td>
-        <td class="jd-linkcol">DEVELOPMENT&nbsp;</td>
-        <td class="jd-descrcol" width="100%">We want fast startup times at the expense of runtime performance and some up front error
- checking.&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../com/google/inject/Stage.html">Stage</a>&nbsp;</td>
-        <td class="jd-linkcol">PRODUCTION&nbsp;</td>
-        <td class="jd-descrcol" width="100%">We want to catch errors as early as possible and take performance hits up front.&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../com/google/inject/Stage.html">Stage</a>&nbsp;</td>
-        <td class="jd-linkcol">TOOL&nbsp;</td>
-        <td class="jd-descrcol" width="100%">We're running in a tool (an IDE plugin for example).&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Stage.html#valueOf(java.lang.String)">valueOf</a></span>(String name)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            static
-            
-            <a href="../../../com/google/inject/Stage.html">Stage[]</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Stage.html#values()">values</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Enum" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Enum-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Enum
-
-<div id="inherited-methods-java.lang.Enum">
-  <div id="inherited-methods-java.lang.Enum-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Enum-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(E arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;E&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getDeclaringClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">name</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">ordinal</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&nbsp;extends&nbsp;Enum&lt;T&gt;&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">valueOf</span>(Class&lt;T&gt; arg0, String arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Comparable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Comparable-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.Comparable
-
-<div id="inherited-methods-java.lang.Comparable">
-  <div id="inherited-methods-java.lang.Comparable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Comparable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(T arg0)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Enum Values</h2>
-
-
-
-
-<A NAME="DEVELOPMENT"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../com/google/inject/Stage.html">Stage</a>
-      </span>
-        DEVELOPMENT
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>We want fast startup times at the expense of runtime performance and some up front error
- checking.
-</p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="PRODUCTION"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../com/google/inject/Stage.html">Stage</a>
-      </span>
-        PRODUCTION
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>We want to catch errors as early as possible and take performance hits up front.
-</p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="TOOL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../com/google/inject/Stage.html">Stage</a>
-      </span>
-        TOOL
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>We're running in a tool (an IDE plugin for example). We need binding meta data but not a
- functioning Injector. Do not inject members of instances. Do not load eager singletons. Do as
- little as possible so our tools run nice and snappy. Injectors created in this stage cannot
- be used to satisfy injections.
-</p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="valueOf(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Stage.html">Stage</a>
-      </span>
-      <span class="sympad">valueOf</span>
-      <span class="normal">(String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="values()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-         
-         
-        <a href="../../../com/google/inject/Stage.html">Stage[]</a>
-      </span>
-      <span class="sympad">values</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/TypeLiteral.html b/javadoc/com/google/inject/TypeLiteral.html
deleted file mode 100755
index a398b84..0000000
--- a/javadoc/com/google/inject/TypeLiteral.html
+++ /dev/null
@@ -1,1482 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  TypeLiteral
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-  <a href="#proctors">Protected Ctors</a>
-  
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>TypeLiteral</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.TypeLiteral&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Represents a generic type <code>T</code>. Java doesn't yet provide a way to
- represent generic types, so this class does. Forces clients to create a
- subclass of this class which enables retrieval the type information even at
- runtime.
-
- <p>For example, to create a type literal for <code>List&lt;String&gt;</code>, you can
- create an empty anonymous inner class:
-
- <p>
- <code>TypeLiteral&lt;List&lt;String&gt;&gt; list = new TypeLiteral&lt;List&lt;String&gt;&gt;() {</code>;}
-
- <p>Along with modeling generic types, this class can resolve type parameters.
- For example, to figure out what type <code>keySet()</code> returns on a <code>Map&lt;Integer, String&gt;</code>, use this code:<pre>   <code>TypeLiteral&lt;Map&lt;Integer, String&gt;&gt; mapType
-       = new TypeLiteral&lt;Map&lt;Integer, String&gt;&gt;() {</code>;
-   TypeLiteral<?> keySetType
-       = mapType.getReturnType(Map.class.getMethod("keySet"));
-   System.out.println(keySetType); // prints "Set<Integer>"}</pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="proctors" class="jd-sumtable"><tr><th colspan="12">Protected Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#TypeLiteral()">TypeLiteral</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Constructs a new type literal.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#equals(java.lang.Object)">equals</a></span>(Object o)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#get(java.lang.Class<T>)">get</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Gets type literal for the given <code>Class</code> instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#get(java.lang.reflect.Type)">get</a></span>(Type type)</nobr>
-        
-        <div class="jd-descrdiv">Gets type literal for the given <code>Type</code> instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            List&lt;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#getExceptionTypes(java.lang.reflect.Member)">getExceptionTypes</a></span>(Member methodOrConstructor)</nobr>
-        
-        <div class="jd-descrdiv">Returns the resolved generic exception types thrown by <code>constructor</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#getFieldType(java.lang.reflect.Field)">getFieldType</a></span>(Field field)</nobr>
-        
-        <div class="jd-descrdiv">Returns the resolved generic type of <code>field</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            List&lt;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#getParameterTypes(java.lang.reflect.Member)">getParameterTypes</a></span>(Member methodOrConstructor)</nobr>
-        
-        <div class="jd-descrdiv">Returns the resolved generic parameter types of <code>methodOrConstructor</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&nbsp;super&nbsp;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#getRawType()">getRawType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the raw (non-generic) type for this type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#getReturnType(java.lang.reflect.Method)">getReturnType</a></span>(Method method)</nobr>
-        
-        <div class="jd-descrdiv">Returns the resolved generic return type of <code>method</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#getSupertype(java.lang.Class<?>)">getSupertype</a></span>(Class&lt;?&gt; supertype)</nobr>
-        
-        <div class="jd-descrdiv">Returns the generic form of <code>supertype</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Type</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#getType()">getType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets underlying <code>Type</code> instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#hashCode()">hashCode</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-<h2>Protected Constructors</h2>
-
-
-
-<A NAME="TypeLiteral()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">TypeLiteral</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Constructs a new type literal. Derives represented class from type
- parameter.
-
- <p>Clients create an empty anonymous subclass. Doing so embeds the type
- parameter in the anonymous class's type hierarchy so we can reconstitute it
- at runtime despite erasure.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="equals(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        boolean
-      </span>
-      <span class="sympad">equals</span>
-      <span class="normal">(Object o)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets type literal for the given <code>Class</code> instance.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(Type type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets type literal for the given <code>Type</code> instance.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getExceptionTypes(java.lang.reflect.Member)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        List&lt;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getExceptionTypes</span>
-      <span class="normal">(Member methodOrConstructor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the resolved generic exception types thrown by <code>constructor</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>methodOrConstructor</td>
-          <td>a method or constructor defined by this or any supertype.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getFieldType(java.lang.reflect.Field)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;
-      </span>
-      <span class="sympad">getFieldType</span>
-      <span class="normal">(Field field)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the resolved generic type of <code>field</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>field</td>
-          <td>a field defined by this or any superclass.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getParameterTypes(java.lang.reflect.Member)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        List&lt;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getParameterTypes</span>
-      <span class="normal">(Member methodOrConstructor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the resolved generic parameter types of <code>methodOrConstructor</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>methodOrConstructor</td>
-          <td>a method or constructor defined by this or any supertype.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getRawType()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        Class&lt;?&nbsp;super&nbsp;T&gt;
-      </span>
-      <span class="sympad">getRawType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the raw (non-generic) type for this type.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getReturnType(java.lang.reflect.Method)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;
-      </span>
-      <span class="sympad">getReturnType</span>
-      <span class="normal">(Method method)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the resolved generic return type of <code>method</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>method</td>
-          <td>a method defined by this or any supertype.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getSupertype(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;
-      </span>
-      <span class="sympad">getSupertype</span>
-      <span class="normal">(Class&lt;?&gt; supertype)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the generic form of <code>supertype</code>. For example, if this is <code>ArrayList&lt;String&gt;</code>, this returns <code>Iterable&lt;String&gt;</code> given the input <code>Iterable.class</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>supertype</td>
-          <td>a superclass of, or interface implemented by, this.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getType()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        Type
-      </span>
-      <span class="sympad">getType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets underlying <code>Type</code> instance.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="hashCode()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        int
-      </span>
-      <span class="sympad">hashCode</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/assistedinject/Assisted.html b/javadoc/com/google/inject/assistedinject/Assisted.html
deleted file mode 100755
index 487985b..0000000
--- a/javadoc/com/google/inject/assistedinject/Assisted.html
+++ /dev/null
@@ -1,572 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Assisted
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>Assisted</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.assistedinject.Assisted</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Annotates an injected parameter or field whose value comes from an argument to a factory method.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/assistedinject/AssistedInject.html b/javadoc/com/google/inject/assistedinject/AssistedInject.html
deleted file mode 100755
index 0e4daba..0000000
--- a/javadoc/com/google/inject/assistedinject/AssistedInject.html
+++ /dev/null
@@ -1,591 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  AssistedInject
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>AssistedInject</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.assistedinject.AssistedInject</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p><p>
- When used in tandem with <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>, constructors annotated with 
- <code>@AssistedInject</code> indicate that multiple constructors can be injected, each with different
- parameters. AssistedInject annotations should not be mixed with @<code><a href="../../../../com/google/inject/Inject.html">Inject</a></code>
- annotations. The assisted parameters must exactly match one corresponding factory method within
- the factory interface, but the parameters do not need to be in the same order. Constructors
- annotated with AssistedInject <b>are</b> created by Guice and receive all the benefits
- (such as AOP).
- 
- <p>
- <strong>Obsolete Usage:</strong> When used in tandem with <code><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a></code>, constructors
- annotated with <code>@AssistedInject</code> trigger a "backwards compatibility mode". The assisted
- parameters must exactly match one corresponding factory method within the factory interface and
- all must be in the same order as listed in the factory. In this backwards compatable mode,
- constructors annotated with AssistedInject <b>are not</b> created by Guice and thus receive
- none of the benefits.
- 
- <p>
- Constructor parameters must be either supplied by the factory interface and marked with
- <code>@Assisted</code>, or they must be injectable.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/assistedinject/AssistedInjectBinding.html b/javadoc/com/google/inject/assistedinject/AssistedInjectBinding.html
deleted file mode 100755
index 96f02c4..0000000
--- a/javadoc/com/google/inject/assistedinject/AssistedInjectBinding.html
+++ /dev/null
@@ -1,560 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  AssistedInjectBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>AssistedInjectBinding</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.assistedinject.AssistedInjectBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding for a factory created by FactoryModuleBuilder.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html#getAssistedMethods()">getAssistedMethods</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an <code><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></code> for each method in the factory.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the <code><a href="../../../../com/google/inject/Key.html">Key</a></code> for the factory binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getAssistedMethods()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Collection&lt;<a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a>&gt;
-      </span>
-      <span class="sympad">getAssistedMethods</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an <code><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></code> for each method in the factory. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getKey()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the <code><a href="../../../../com/google/inject/Key.html">Key</a></code> for the factory binding. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/assistedinject/AssistedInjectTargetVisitor.html b/javadoc/com/google/inject/assistedinject/AssistedInjectTargetVisitor.html
deleted file mode 100755
index 16cc4e6..0000000
--- a/javadoc/com/google/inject/assistedinject/AssistedInjectTargetVisitor.html
+++ /dev/null
@@ -1,743 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  AssistedInjectTargetVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>AssistedInjectTargetVisitor</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.assistedinject.AssistedInjectTargetVisitor&lt;T,&nbsp;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A visitor for the AssistedInject extension.
- <p>
- If your <code><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> implements this interface, bindings created by using
- <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code> will be visited through this interface.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html#visit(com.google.inject.assistedinject.AssistedInjectBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; assistedInjectBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visits an <code><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a></code> created through <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.BindingTargetVisitor" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">com.google.inject.spi.BindingTargetVisitor</a>
-
-<div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor">
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConstructorBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a constructor binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding created from converting a bound instance to a new type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ExposedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a key exposed from an enclosed private environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.InstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a linked key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.UntargettedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an untargetted binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visit(com.google.inject.assistedinject.AssistedInjectBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; assistedInjectBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visits an <code><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a></code> created through <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/assistedinject/AssistedMethod.html b/javadoc/com/google/inject/assistedinject/AssistedMethod.html
deleted file mode 100755
index 206d0e1..0000000
--- a/javadoc/com/google/inject/assistedinject/AssistedMethod.html
+++ /dev/null
@@ -1,672 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  AssistedMethod
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>AssistedMethod</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.assistedinject.AssistedMethod</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Details about how a method in an assisted inject factory will be assisted.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns all non-assisted dependencies required to construct and inject
- the implementation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Method</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html#getFactoryMethod()">getFactoryMethod</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the factory method that is being assisted.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Constructor&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html#getImplementationConstructor()">getImplementationConstructor</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the constructor that will be used to construct instances of the 
- implementation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html#getImplementationType()">getImplementationType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the implementation type that will be created when the method is
- used.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getDependencies()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getDependencies</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns all non-assisted dependencies required to construct and inject
- the implementation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getFactoryMethod()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Method
-      </span>
-      <span class="sympad">getFactoryMethod</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the factory method that is being assisted.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getImplementationConstructor()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Constructor&lt;?&gt;
-      </span>
-      <span class="sympad">getImplementationConstructor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the constructor that will be used to construct instances of the 
- implementation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getImplementationType()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;
-      </span>
-      <span class="sympad">getImplementationType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the implementation type that will be created when the method is
- used.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/assistedinject/FactoryModuleBuilder.html b/javadoc/com/google/inject/assistedinject/FactoryModuleBuilder.html
deleted file mode 100755
index c4db826..0000000
--- a/javadoc/com/google/inject/assistedinject/FactoryModuleBuilder.html
+++ /dev/null
@@ -1,1809 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  FactoryModuleBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>FactoryModuleBuilder</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.assistedinject.FactoryModuleBuilder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Provides a factory that combines the caller's arguments with injector-supplied values to
- construct objects.
-
- <h3>Defining a factory</h3>
- 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.
-
- <pre>public interface PaymentFactory {
-   Payment create(Date startDate, Money amount);
- }</pre>
-
- You can name your factory methods whatever you like, such as <i>create</i>, <i>createPayment</i>
- or <i>newPayment</i>.
-
- <h3>Creating a type that accepts factory parameters</h3>
- <code>constructedType</code> is a concrete class with an @<code><a href="../../../../com/google/inject/Inject.html">Inject</a></code>-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 @<code><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></code> annotation. This serves to document that the
- parameter is not bound by your application's modules.
-
- <pre>public class RealPayment implements Payment {
-   @Inject
-   public RealPayment(
-      CreditService creditService,
-      AuthService authService,
-      <strong>@Assisted Date startDate</strong>,
-      <strong>@Assisted Money amount</strong>) {
-     ...
-   }
- }</pre>
- 
- <h3>Multiple factory methods for the same type</h3>
- 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
- @<code><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></code>, in order to match the different parameters types of the
- factory methods. 
- 
- <pre>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,
-     <strong>@Assisted Date startDate</strong>,
-     <strong>@Assisted Money amount</strong>) {
-     ...
-   }
-   
-  @AssistedInject
-   public RealPayment(
-      CreditService creditService,
-      AuthService authService,
-     <strong>@Assisted Money amount</strong>) {
-     ...
-   }   
- }</pre> 
-
- <h3>Configuring simple factories</h3>
- In your <code><a href="../../../../com/google/inject/Module.html">module</a></code>, install a <code>FactoryModuleBuilder</code> that creates the
- factory:
-
- <pre>install(new FactoryModuleBuilder()
-     .implement(Payment.class, RealPayment.class)
-     .build(PaymentFactory.class);</pre>
-
- As a side-effect of this binding, Guice will inject the factory to initialize it for use. The
- factory cannot be used until the injector has been initialized.
-
- <h3>Using the factory</h3>
- 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.
-
- <pre>public class PaymentAction {
-   @Inject private PaymentFactory paymentFactory;
-
-   public void doPayment(Money amount) {
-     Payment payment = paymentFactory.create(new Date(), amount);
-     payment.apply();
-   }
- }</pre>
-
- <h3>Making parameter types distinct</h3>
- The types of the factory method's parameters must be distinct. To use multiple parameters of
- the same type, use a named @<code><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></code> annotation to disambiguate the
- parameters. The names must be applied to the factory method's parameters:
-
- <pre>public interface PaymentFactory {
-   Payment create(
-       <strong>@Assisted("startDate")</strong> Date startDate,
-       <strong>@Assisted("dueDate")</strong> Date dueDate,
-       Money amount);
- } </pre>
-
- ...and to the concrete type's constructor parameters:
-
- <pre>public class RealPayment implements Payment {
-   @Inject
-   public RealPayment(
-      CreditService creditService,
-      AuthService authService,
-      <strong>@Assisted("startDate")</strong> Date startDate,
-      <strong>@Assisted("dueDate")</strong> Date dueDate,
-      <strong>@Assisted</strong> Money amount) {
-     ...
-   }
- }</pre>
-
- <h3>Values are created by Guice</h3>
- 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.
-
- <h3>More configuration options</h3>
- 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:
- <p/>
- If you just want to return the types specified in the factory, do not configure any
- implementations:
-
- <pre>public interface FruitFactory {
-   Apple getApple(Color color);
- }
- ...
- protected void configure() {
-   install(new FactoryModuleBuilder().build(FruitFactory.class));
- }</pre>
-
- Note that any type returned by the factory in this manner needs to be an implementation class.
- <p/>
- To return two different implementations for the same interface from your factory, use binding
- annotations on your return types:
-
- <pre>interface CarFactory {
-   @Named("fast") Car getFastCar(Color color);
-   @Named("clean") Car getCleanCar(Color color);
- }
- ...
- protected void configure() {
-   install(new FactoryModuleBuilder()
-       .implement(Car.class, Names.named("fast"), Porsche.class)
-       .implement(Car.class, Names.named("clean"), Prius.class)
-       .build(CarFactory.class));
- }</pre>
- 
- <h3>Implementation limitations</h3>
- As a limitation of the implementation, it is prohibited to declare a factory method that
- accepts a <code>Provider</code> as one of its arguments.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#FactoryModuleBuilder()">FactoryModuleBuilder</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;F&gt;
-            <a href="../../../../com/google/inject/Module.html">Module</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#build(com.google.inject.Key<F>)">build</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;F&gt; factoryInterface)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;F&gt;
-            <a href="../../../../com/google/inject/Module.html">Module</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#build(com.google.inject.TypeLiteral<F>)">build</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;F&gt; factoryInterface)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;F&gt;
-            <a href="../../../../com/google/inject/Module.html">Module</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#build(java.lang.Class<F>)">build</a></span>(Class&lt;F&gt; factoryInterface)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(com.google.inject.Key<T>, com.google.inject.TypeLiteral<? extends T>)">implement</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(com.google.inject.Key<T>, java.lang.Class<? extends T>)">implement</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(com.google.inject.TypeLiteral<T>, com.google.inject.TypeLiteral<? extends T>)">implement</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(com.google.inject.TypeLiteral<T>, java.lang.Class<? extends T>)">implement</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(com.google.inject.TypeLiteral<T>, java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.TypeLiteral<? extends T>)">implement</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(com.google.inject.TypeLiteral<T>, java.lang.Class<? extends java.lang.annotation.Annotation>, java.lang.Class<? extends T>)">implement</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(com.google.inject.TypeLiteral<T>, java.lang.annotation.Annotation, com.google.inject.TypeLiteral<? extends T>)">implement</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Annotation annotation, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(com.google.inject.TypeLiteral<T>, java.lang.annotation.Annotation, java.lang.Class<? extends T>)">implement</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Annotation annotation, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(java.lang.Class<T>, com.google.inject.TypeLiteral<? extends T>)">implement</a></span>(Class&lt;T&gt; source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(java.lang.Class<T>, java.lang.Class<? extends T>)">implement</a></span>(Class&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(java.lang.Class<T>, java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.TypeLiteral<? extends T>)">implement</a></span>(Class&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(java.lang.Class<T>, java.lang.Class<? extends java.lang.annotation.Annotation>, java.lang.Class<? extends T>)">implement</a></span>(Class&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(java.lang.Class<T>, java.lang.annotation.Annotation, com.google.inject.TypeLiteral<? extends T>)">implement</a></span>(Class&lt;T&gt; source, Annotation annotation, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(java.lang.Class<T>, java.lang.annotation.Annotation, java.lang.Class<? extends T>)">implement</a></span>(Class&lt;T&gt; source, Annotation annotation, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="FactoryModuleBuilder()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">FactoryModuleBuilder</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="build(com.google.inject.Key<F>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-      <span class="sympad">build</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;F&gt; factoryInterface)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="build(com.google.inject.TypeLiteral<F>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-      <span class="sympad">build</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;F&gt; factoryInterface)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="build(java.lang.Class<F>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-      <span class="sympad">build</span>
-      <span class="normal">(Class&lt;F&gt; factoryInterface)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(com.google.inject.Key<T>, com.google.inject.TypeLiteral<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(com.google.inject.Key<T>, java.lang.Class<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(com.google.inject.TypeLiteral<T>, com.google.inject.TypeLiteral<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(com.google.inject.TypeLiteral<T>, java.lang.Class<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(com.google.inject.TypeLiteral<T>, java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.TypeLiteral<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(com.google.inject.TypeLiteral<T>, java.lang.Class<? extends java.lang.annotation.Annotation>, java.lang.Class<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(com.google.inject.TypeLiteral<T>, java.lang.annotation.Annotation, com.google.inject.TypeLiteral<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Annotation annotation, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(com.google.inject.TypeLiteral<T>, java.lang.annotation.Annotation, java.lang.Class<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Annotation annotation, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(java.lang.Class<T>, com.google.inject.TypeLiteral<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(Class&lt;T&gt; source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(java.lang.Class<T>, java.lang.Class<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(Class&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(java.lang.Class<T>, java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.TypeLiteral<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(Class&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(java.lang.Class<T>, java.lang.Class<? extends java.lang.annotation.Annotation>, java.lang.Class<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(Class&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(java.lang.Class<T>, java.lang.annotation.Annotation, com.google.inject.TypeLiteral<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(Class&lt;T&gt; source, Annotation annotation, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(java.lang.Class<T>, java.lang.annotation.Annotation, java.lang.Class<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(Class&lt;T&gt; source, Annotation annotation, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/assistedinject/FactoryProvider.html b/javadoc/com/google/inject/assistedinject/FactoryProvider.html
deleted file mode 100755
index 1e89ff9..0000000
--- a/javadoc/com/google/inject/assistedinject/FactoryProvider.html
+++ /dev/null
@@ -1,1172 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  FactoryProvider
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>FactoryProvider</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt; 
-      
-        <a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.assistedinject.FactoryProvider&lt;F&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-<p>
-  <p class="caution">
-      <strong>
-  This class is deprecated.</strong><br/> use <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code> instead.
-
-  </p>
-
-<h2>Class Overview</h2>
-<p><strong>Obsolete.</strong> Prefer <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code> for its more concise API and
- additional capability.
-
- <p>Provides a factory that combines the caller's arguments with injector-supplied values to
- construct objects.
-
- <h3>Defining a factory</h3>
- 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.
- <pre>public interface PaymentFactory {
-   Payment create(Date startDate, Money amount);
- }</pre>
- You can name your factory methods whatever you like, such as <i>create</i>, <i>createPayment</i>
- or <i>newPayment</i>.
-
- <h3>Creating a type that accepts factory parameters</h3>
- <code>constructedType</code> is a concrete class with an @<code><a href="../../../../com/google/inject/Inject.html">Inject</a></code>-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 @<code><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></code> annotation. This serves to document that the parameter
- is not bound by your application's modules.
- <pre>public class RealPayment implements Payment {
-   @Inject
-   public RealPayment(
-      CreditService creditService,
-      AuthService authService,
-      <strong>@Assisted Date startDate</strong>,
-      <strong>@Assisted Money amount</strong>) {
-     ...
-   }
- }</pre>
- Any parameter that permits a null value should also be annotated <code>@Nullable</code>.
-
- <h3>Configuring factories</h3>
- In your <code><a href="../../../../com/google/inject/Module.html">module</a></code>, bind the factory interface to the returned
- factory:
- <pre>bind(PaymentFactory.class).toProvider(
-     FactoryProvider.newFactory(PaymentFactory.class, RealPayment.class));</pre>
- As a side-effect of this binding, Guice will inject the factory to initialize it for use. The
- factory cannot be used until the injector has been initialized.
-
- <h3>Using the factory</h3>
- 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.
- <pre>public class PaymentAction {
-   @Inject private PaymentFactory paymentFactory;
-
-   public void doPayment(Money amount) {
-     Payment payment = paymentFactory.create(new Date(), amount);
-     payment.apply();
-   }
- }</pre>
-
- <h3>Making parameter types distinct</h3>
- The types of the factory method's parameters must be distinct. To use multiple parameters of
- the same type, use a named @<code><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></code> annotation to disambiguate the
- parameters. The names must be applied to the factory method's parameters:
-
- <pre>public interface PaymentFactory {
-   Payment create(
-       <strong>@Assisted("startDate")</strong> Date startDate,
-       <strong>@Assisted("dueDate")</strong> Date dueDate,
-       Money amount);
- } </pre>
- ...and to the concrete type's constructor parameters:
- <pre>public class RealPayment implements Payment {
-   @Inject
-   public RealPayment(
-      CreditService creditService,
-      AuthService authService,
-      <strong>@Assisted("startDate")</strong> Date startDate,
-      <strong>@Assisted("dueDate")</strong> Date dueDate,
-      <strong>@Assisted</strong> Money amount) {
-     ...
-   }
- }</pre>
-
- <h3>Values are created by Guice</h3>
- 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.
-
- <h3>Backwards compatibility using @AssistedInject</h3>
- Instead of the @Inject annotation, you may annotate the constructed classes with
- @<code><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></code>. This triggers a limited backwards-compatability mode.
-
- <p>Instead of matching factory method arguments to constructor parameters using their names, the
- <strong>parameters are matched by their order</strong>. The first factory method argument is
- used for the first @Assisted constructor parameter, etc.. Annotation names have no
- effect.
-
- <p>Returned values are <strong>not created by Guice</strong>. These types are not eligible for
- method interception. They do receive post-construction member injection.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            F</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html#get()">get</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Provides an instance of <code>T</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the known dependencies for this type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;F&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;F&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html#newFactory(com.google.inject.TypeLiteral<F>, com.google.inject.TypeLiteral<?>)">newFactory</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;F&gt; factoryType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; implementationType)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;F&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;F&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html#newFactory(java.lang.Class<F>, java.lang.Class<?>)">newFactory</a></span>(Class&lt;F&gt; factoryType, Class&lt;?&gt; implementationType)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Provider" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Provider-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Provider.html">com.google.inject.Provider</a>
-
-<div id="inherited-methods-com.google.inject.Provider">
-  <div id="inherited-methods-com.google.inject.Provider-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Provider-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Provider.html#get()">get</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Provides an instance of <code>T</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.HasDependencies" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.HasDependencies-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/HasDependencies.html">com.google.inject.spi.HasDependencies</a>
-
-<div id="inherited-methods-com.google.inject.spi.HasDependencies">
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/HasDependencies.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the known dependencies for this type.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-javax.inject.Provider" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-javax.inject.Provider-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  javax.inject.Provider
-
-<div id="inherited-methods-javax.inject.Provider">
-  <div id="inherited-methods-javax.inject.Provider-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-javax.inject.Provider-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">get</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="get()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        F
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Provides an instance of <code>T</code>. Must never return <code>null</code>.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getDependencies()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getDependencies</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the known dependencies for this type. If this has dependencies whose values are not
- known statically, a dependency for the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> will be
- included in the returned set.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="newFactory(com.google.inject.TypeLiteral<F>, com.google.inject.TypeLiteral<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;F&gt;
-      </span>
-      <span class="sympad">newFactory</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;F&gt; factoryType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; implementationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newFactory(java.lang.Class<F>, java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;F&gt;
-      </span>
-      <span class="sympad">newFactory</span>
-      <span class="normal">(Class&lt;F&gt; factoryType, Class&lt;?&gt; implementationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/assistedinject/package-descr.html b/javadoc/com/google/inject/assistedinject/package-descr.html
deleted file mode 100755
index 3de6792..0000000
--- a/javadoc/com/google/inject/assistedinject/package-descr.html
+++ /dev/null
@@ -1,305 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.assistedinject Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.assistedinject</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<div class="jd-descr">
-<p>Extension for combining factory interfaces with injection; this extension requires <code>guice-assistedinject-3.0.jar</code>.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/assistedinject/package-summary.html b/javadoc/com/google/inject/assistedinject/package-summary.html
deleted file mode 100755
index e3ad738..0000000
--- a/javadoc/com/google/inject/assistedinject/package-summary.html
+++ /dev/null
@@ -1,369 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.assistedinject
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.assistedinject</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-
-
-  <div class="jd-descr">
-  <p>Extension for combining factory interfaces with injection; this extension requires <code>guice-assistedinject-3.0.jar</code>.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding for a factory created by FactoryModuleBuilder.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">A visitor for the AssistedInject extension.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></td>
-              <td class="jd-descrcol" width="100%">Details about how a method in an assisted inject factory will be assisted.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></td>
-              <td class="jd-descrcol" width="100%">Provides a factory that combines the caller's arguments with injector-supplied values to
- construct objects.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</td>
-              <td class="jd-descrcol" width="100%">
-      <em>
-  This class is deprecated.
-      use <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code> instead.
-</em>&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/binder/AnnotatedBindingBuilder.html b/javadoc/com/google/inject/binder/AnnotatedBindingBuilder.html
deleted file mode 100755
index 84df73a..0000000
--- a/javadoc/com/google/inject/binder/AnnotatedBindingBuilder.html
+++ /dev/null
@@ -1,888 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  AnnotatedBindingBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>AnnotatedBindingBuilder</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.binder.AnnotatedBindingBuilder&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html#annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)">annotatedWith</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html#annotatedWith(java.lang.annotation.Annotation)">annotatedWith</a></span>(Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.binder.LinkedBindingBuilder" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.binder.LinkedBindingBuilder-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">com.google.inject.binder.LinkedBindingBuilder</a>
-
-<div id="inherited-methods-com.google.inject.binder.LinkedBindingBuilder">
-  <div id="inherited-methods-com.google.inject.binder.LinkedBindingBuilder-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.binder.LinkedBindingBuilder-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#to(com.google.inject.Key<? extends T>)">to</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;T&gt; targetKey)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#to(com.google.inject.TypeLiteral<? extends T>)">to</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; implementation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#to(java.lang.Class<? extends T>)">to</a></span>(Class&lt;?&nbsp;extends&nbsp;T&gt; implementation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;S&nbsp;extends&nbsp;T&gt;
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toConstructor(java.lang.reflect.Constructor<S>)">toConstructor</a></span>(Constructor&lt;S&gt; constructor)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;S&nbsp;extends&nbsp;T&gt;
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toConstructor(java.lang.reflect.Constructor<S>, com.google.inject.TypeLiteral<? extends S>)">toConstructor</a></span>(Constructor&lt;S&gt; constructor, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;S&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toInstance(T)">toInstance</a></span>(T instance)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(com.google.inject.Key<? extends javax.inject.Provider<? extends T>>)">toProvider</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt; providerKey)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(com.google.inject.Provider<? extends T>)">toProvider</a></span>(<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&nbsp;extends&nbsp;T&gt; provider)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(com.google.inject.TypeLiteral<? extends javax.inject.Provider<? extends T>>)">toProvider</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt; providerType)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(java.lang.Class<? extends javax.inject.Provider<? extends T>>)">toProvider</a></span>(Class&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt; providerType)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">com.google.inject.binder.ScopedBindingBuilder</a>
-
-<div id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder">
-  <div id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html#asEagerSingleton()">asEagerSingleton</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Instructs the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> to eagerly initialize this
- singleton-scoped binding upon creation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html#in(com.google.inject.Scope)">in</a></span>(<a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html#in(java.lang.Class<? extends java.lang.annotation.Annotation>)">in</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="annotatedWith(java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/binder/AnnotatedConstantBindingBuilder.html b/javadoc/com/google/inject/binder/AnnotatedConstantBindingBuilder.html
deleted file mode 100755
index f14337c..0000000
--- a/javadoc/com/google/inject/binder/AnnotatedConstantBindingBuilder.html
+++ /dev/null
@@ -1,553 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  AnnotatedConstantBindingBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>AnnotatedConstantBindingBuilder</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.binder.AnnotatedConstantBindingBuilder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html#annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)">annotatedWith</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html#annotatedWith(java.lang.annotation.Annotation)">annotatedWith</a></span>(Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a>
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="annotatedWith(java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a>
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/binder/AnnotatedElementBuilder.html b/javadoc/com/google/inject/binder/AnnotatedElementBuilder.html
deleted file mode 100755
index 1f694d7..0000000
--- a/javadoc/com/google/inject/binder/AnnotatedElementBuilder.html
+++ /dev/null
@@ -1,553 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  AnnotatedElementBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>AnnotatedElementBuilder</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.binder.AnnotatedElementBuilder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html#annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)">annotatedWith</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html#annotatedWith(java.lang.annotation.Annotation)">annotatedWith</a></span>(Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="annotatedWith(java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/binder/ConstantBindingBuilder.html b/javadoc/com/google/inject/binder/ConstantBindingBuilder.html
deleted file mode 100755
index e8ac08c..0000000
--- a/javadoc/com/google/inject/binder/ConstantBindingBuilder.html
+++ /dev/null
@@ -1,1021 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ConstantBindingBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ConstantBindingBuilder</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.binder.ConstantBindingBuilder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Binds to a constant value.
-</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;E&nbsp;extends&nbsp;Enum&lt;E&gt;&gt;
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(E)">to</a></span>(E value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(boolean)">to</a></span>(boolean value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(byte)">to</a></span>(byte value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(char)">to</a></span>(char value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(double)">to</a></span>(double value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(float)">to</a></span>(float value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(int)">to</a></span>(int value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(java.lang.Class<?>)">to</a></span>(Class&lt;?&gt; value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(java.lang.String)">to</a></span>(String value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(long)">to</a></span>(long value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(short)">to</a></span>(short value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="to(E)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(E value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(boolean)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(boolean value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(byte)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(byte value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(char)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(char value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(double)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(double value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(float)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(float value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(int)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(int value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(Class&lt;?&gt; value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(String value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(long)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(long value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(short)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(short value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/binder/LinkedBindingBuilder.html b/javadoc/com/google/inject/binder/LinkedBindingBuilder.html
deleted file mode 100755
index ebfe0ee..0000000
--- a/javadoc/com/google/inject/binder/LinkedBindingBuilder.html
+++ /dev/null
@@ -1,1128 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  LinkedBindingBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>LinkedBindingBuilder</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.binder.LinkedBindingBuilder&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#to(com.google.inject.Key<? extends T>)">to</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;T&gt; targetKey)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#to(com.google.inject.TypeLiteral<? extends T>)">to</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; implementation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#to(java.lang.Class<? extends T>)">to</a></span>(Class&lt;?&nbsp;extends&nbsp;T&gt; implementation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;S&nbsp;extends&nbsp;T&gt;
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toConstructor(java.lang.reflect.Constructor<S>)">toConstructor</a></span>(Constructor&lt;S&gt; constructor)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;S&nbsp;extends&nbsp;T&gt;
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toConstructor(java.lang.reflect.Constructor<S>, com.google.inject.TypeLiteral<? extends S>)">toConstructor</a></span>(Constructor&lt;S&gt; constructor, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;S&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toInstance(T)">toInstance</a></span>(T instance)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(com.google.inject.Key<? extends javax.inject.Provider<? extends T>>)">toProvider</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt; providerKey)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(com.google.inject.Provider<? extends T>)">toProvider</a></span>(<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&nbsp;extends&nbsp;T&gt; provider)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(com.google.inject.TypeLiteral<? extends javax.inject.Provider<? extends T>>)">toProvider</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt; providerType)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(java.lang.Class<? extends javax.inject.Provider<? extends T>>)">toProvider</a></span>(Class&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt; providerType)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">com.google.inject.binder.ScopedBindingBuilder</a>
-
-<div id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder">
-  <div id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html#asEagerSingleton()">asEagerSingleton</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Instructs the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> to eagerly initialize this
- singleton-scoped binding upon creation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html#in(com.google.inject.Scope)">in</a></span>(<a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html#in(java.lang.Class<? extends java.lang.annotation.Annotation>)">in</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="to(com.google.inject.Key<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;T&gt; targetKey)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(com.google.inject.TypeLiteral<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; implementation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(java.lang.Class<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;T&gt; implementation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toConstructor(java.lang.reflect.Constructor<S>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">toConstructor</span>
-      <span class="normal">(Constructor&lt;S&gt; constructor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toConstructor(java.lang.reflect.Constructor<S>, com.google.inject.TypeLiteral<? extends S>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">toConstructor</span>
-      <span class="normal">(Constructor&lt;S&gt; constructor, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;S&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toInstance(T)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">toInstance</span>
-      <span class="normal">(T instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/Injector.html#injectMembers(java.lang.Object)">injectMembers(Object)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="toProvider(com.google.inject.Key<? extends javax.inject.Provider<? extends T>>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">toProvider</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt; providerKey)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toProvider(com.google.inject.Provider<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">toProvider</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&nbsp;extends&nbsp;T&gt; provider)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/Injector.html#injectMembers(java.lang.Object)">injectMembers(Object)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="toProvider(com.google.inject.TypeLiteral<? extends javax.inject.Provider<? extends T>>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">toProvider</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt; providerType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toProvider(java.lang.Class<? extends javax.inject.Provider<? extends T>>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">toProvider</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt; providerType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/binder/ScopedBindingBuilder.html b/javadoc/com/google/inject/binder/ScopedBindingBuilder.html
deleted file mode 100755
index b7536ea..0000000
--- a/javadoc/com/google/inject/binder/ScopedBindingBuilder.html
+++ /dev/null
@@ -1,665 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ScopedBindingBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ScopedBindingBuilder</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.binder.ScopedBindingBuilder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;,
-            
-              <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html#asEagerSingleton()">asEagerSingleton</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Instructs the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> to eagerly initialize this
- singleton-scoped binding upon creation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html#in(com.google.inject.Scope)">in</a></span>(<a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html#in(java.lang.Class<? extends java.lang.annotation.Annotation>)">in</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="asEagerSingleton()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">asEagerSingleton</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Instructs the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> to eagerly initialize this
- singleton-scoped binding upon creation. Useful for application
- initialization logic.  See the EDSL examples at
- <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="in(com.google.inject.Scope)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">in</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="in(java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">in</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/binder/package-descr.html b/javadoc/com/google/inject/binder/package-descr.html
deleted file mode 100755
index f398a41..0000000
--- a/javadoc/com/google/inject/binder/package-descr.html
+++ /dev/null
@@ -1,297 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.binder Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.binder</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<div class="jd-descr">
-<p>Interfaces which make up <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>'s
- expression language.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/binder/package-summary.html b/javadoc/com/google/inject/binder/package-summary.html
deleted file mode 100755
index 862a793..0000000
--- a/javadoc/com/google/inject/binder/package-summary.html
+++ /dev/null
@@ -1,353 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.binder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.binder</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-
-
-  <div class="jd-descr">
-  <p>Interfaces which make up <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>'s
- expression language.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></td>
-              <td class="jd-descrcol" width="100%">Binds to a constant value.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/BindingEdge.Factory.html b/javadoc/com/google/inject/grapher/BindingEdge.Factory.html
deleted file mode 100755
index 07bd86c..0000000
--- a/javadoc/com/google/inject/grapher/BindingEdge.Factory.html
+++ /dev/null
@@ -1,590 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  BindingEdge.Factory
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-    static 
-     
-    
-    interface
-<h1>BindingEdge.Factory</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.BindingEdge.Factory&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">com.google.inject.grapher.BindingEdge</a>&lt;K&gt;&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></td>
-              <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Factory interface for <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code>s. Renderer implementations will
- need to provide an implementation for this.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html#newBindingEdge(K, K)">newBindingEdge</a></span>(K fromId, K toId)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> instance and adds it to the graph.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="newBindingEdge(K, K)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">newBindingEdge</span>
-      <span class="normal">(K fromId, K toId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a new <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> instance and adds it to the graph.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>fromId</td>
-          <td>Node ID for the interface node.</td>
-        </tr>
-        <tr>
-          <th>toId</td>
-          <td>Node ID for the implementation (class or instance) node.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>The newly created and added <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code>.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/BindingEdge.Type.html b/javadoc/com/google/inject/grapher/BindingEdge.Type.html
deleted file mode 100755
index dc06a4b..0000000
--- a/javadoc/com/google/inject/grapher/BindingEdge.Type.html
+++ /dev/null
@@ -1,1233 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  BindingEdge.Type
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-  <a href="#enumconstants">Enums</a>
-  
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-    static 
-    final 
-    
-    enum
-<h1>BindingEdge.Type</h1>
-
-
-
-  
-  
-  
-
-  
-    extends Enum&lt;E&nbsp;extends&nbsp;Enum&lt;E&gt;&gt;<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Enum&lt;E&nbsp;extends&nbsp;java.lang.Enum&lt;E&gt;&gt;</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.BindingEdge.Type</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Classification for what kind of binding this edge represents.
-</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a>&nbsp;</td>
-        <td class="jd-linkcol">CONVERTED_CONSTANT&nbsp;</td>
-        <td class="jd-descrcol" width="100%">Binding is to the interface for a constant of a different type.&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a>&nbsp;</td>
-        <td class="jd-linkcol">NORMAL&nbsp;</td>
-        <td class="jd-descrcol" width="100%">Binding is to an instance or class of the binding's same type.&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a>&nbsp;</td>
-        <td class="jd-linkcol">PROVIDER&nbsp;</td>
-        <td class="jd-descrcol" width="100%">Binding is to an instance or class that provides the binding's type.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html#valueOf(java.lang.String)">valueOf</a></span>(String name)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            static
-            
-            <a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">Type[]</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html#values()">values</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Enum" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Enum-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Enum
-
-<div id="inherited-methods-java.lang.Enum">
-  <div id="inherited-methods-java.lang.Enum-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Enum-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(E arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;E&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getDeclaringClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">name</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">ordinal</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&nbsp;extends&nbsp;Enum&lt;T&gt;&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">valueOf</span>(Class&lt;T&gt; arg0, String arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Comparable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Comparable-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.Comparable
-
-<div id="inherited-methods-java.lang.Comparable">
-  <div id="inherited-methods-java.lang.Comparable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Comparable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(T arg0)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Enum Values</h2>
-
-
-
-
-<A NAME="CONVERTED_CONSTANT"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a>
-      </span>
-        CONVERTED_CONSTANT
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binding is to the interface for a constant of a different type. </p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="NORMAL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a>
-      </span>
-        NORMAL
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binding is to an instance or class of the binding's same type. </p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="PROVIDER"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a>
-      </span>
-        PROVIDER
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binding is to an instance or class that provides the binding's type. </p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="valueOf(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a>
-      </span>
-      <span class="sympad">valueOf</span>
-      <span class="normal">(String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="values()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-         
-         
-        <a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">Type[]</a>
-      </span>
-      <span class="sympad">values</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/BindingEdge.html b/javadoc/com/google/inject/grapher/BindingEdge.html
deleted file mode 100755
index 57f19ed..0000000
--- a/javadoc/com/google/inject/grapher/BindingEdge.html
+++ /dev/null
@@ -1,606 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  BindingEdge
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>BindingEdge</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.BindingEdge&lt;K&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></td>
-              <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> methods to display
- operations on a <code><a href="../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Interface for an edge that connects an interface to the type or instance
- that is bound to implement it.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_3.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        interface</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</td>
-      <td class="jd-descrcol" width="100%">Factory interface for <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code>s.&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-Guice_3.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        enum</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></td>
-      <td class="jd-descrcol" width="100%">Classification for what kind of binding this edge represents.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/BindingEdge.html#setType(com.google.inject.grapher.BindingEdge.Type)">setType</a></span>(<a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a> type)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="setType(com.google.inject.grapher.BindingEdge.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">setType</span>
-      <span class="normal">(<a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a> type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/DependencyEdge.Factory.html b/javadoc/com/google/inject/grapher/DependencyEdge.Factory.html
deleted file mode 100755
index 12244eb..0000000
--- a/javadoc/com/google/inject/grapher/DependencyEdge.Factory.html
+++ /dev/null
@@ -1,592 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  DependencyEdge.Factory
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-    static 
-     
-    
-    interface
-<h1>DependencyEdge.Factory</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.DependencyEdge.Factory&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">com.google.inject.grapher.DependencyEdge</a>&lt;K&gt;&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></td>
-              <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Factory interface for <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>s. Renderer implementations
- will need to provide an implementation for this.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html#newDependencyEdge(K, com.google.inject.spi.InjectionPoint, K)">newDependencyEdge</a></span>(K fromId, <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a> fromPoint, K toId)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> and adds it to the graph.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="newDependencyEdge(K, com.google.inject.spi.InjectionPoint, K)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">newDependencyEdge</span>
-      <span class="normal">(K fromId, <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a> fromPoint, K toId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a new <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> and adds it to the graph.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>fromId</td>
-          <td>The ID for the class or instance node that has the
-     dependency.</td>
-        </tr>
-        <tr>
-          <th>fromPoint</td>
-          <td>The point where the dependency will be
-     @Injected. </td>
-        </tr>
-        <tr>
-          <th>toId</td>
-          <td>The ID for the interface node that satisfies the dependency.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/DependencyEdge.html b/javadoc/com/google/inject/grapher/DependencyEdge.html
deleted file mode 100755
index a238554..0000000
--- a/javadoc/com/google/inject/grapher/DependencyEdge.html
+++ /dev/null
@@ -1,528 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  DependencyEdge
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>DependencyEdge</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.DependencyEdge&lt;K&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></td>
-              <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> methods to display
- operations on a <code><a href="../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Interface for an edge from a class or <code><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></code> to the
- interface node that will satisfy the dependency.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_3.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        interface</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</td>
-      <td class="jd-descrcol" width="100%">Factory interface for <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>s.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/GrapherModule.html b/javadoc/com/google/inject/grapher/GrapherModule.html
deleted file mode 100755
index f9e0d99..0000000
--- a/javadoc/com/google/inject/grapher/GrapherModule.html
+++ /dev/null
@@ -1,1340 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  GrapherModule
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>GrapherModule</h1>
-
-
-
-  
-  
-  
-
-  
-    extends <a href="../../../../com/google/inject/AbstractModule.html">AbstractModule</a><br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell"><a href="../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a></td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.GrapherModule</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Module for the common bindings for <code><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></code>. You will also
- need to bind a Module that satisfies the <code><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code>
- dependency.
- <p>
- If you want to use subtypes of the node and edge classes, or a different
- node ID type, you will need to override the <code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a></code> binding
- to specify the new type parameters. </p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GrapherModule.html#GrapherModule()">GrapherModule</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GrapherModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.AbstractModule" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.AbstractModule-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  <a href="../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a>
-
-<div id="inherited-methods-com.google.inject.AbstractModule">
-  <div id="inherited-methods-com.google.inject.AbstractModule-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.AbstractModule-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.Key<T>)">bind</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.TypeLiteral<T>)">bind</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bind(java.lang.Class<T>)">bind</a></span>(Class&lt;T&gt; clazz)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindConstant()">bindConstant</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation, <a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#binder()">binder</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets direct access to the underlying <code>Binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> builder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#currentStage()">currentStage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#install(com.google.inject.Module)">install</a></span>(<a href="../../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requestInjection(java.lang.Object)">requestInjection</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection</a></span>(Class...&lt;?&gt; types)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requireBinding(com.google.inject.Key<?>)">requireBinding</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>key</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requireBinding(java.lang.Class<?>)">requireBinding</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>type</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Module" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Module-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Module.html">com.google.inject.Module</a>
-
-<div id="inherited-methods-com.google.inject.Module">
-  <div id="inherited-methods-com.google.inject.Module-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Module-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Module.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="GrapherModule()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">GrapherModule</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="configure()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">configure</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Configures a <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/GraphingVisitor.html b/javadoc/com/google/inject/grapher/GraphingVisitor.html
deleted file mode 100755
index d7ed105..0000000
--- a/javadoc/com/google/inject/grapher/GraphingVisitor.html
+++ /dev/null
@@ -1,2066 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  GraphingVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>GraphingVisitor</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.GraphingVisitor&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">com.google.inject.grapher.InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">com.google.inject.grapher.ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">com.google.inject.grapher.BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">com.google.inject.grapher.DependencyEdge</a>&lt;K&gt;&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p><code><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> that adds nodes and edges to the graph based on
- the visited <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>.
- <p>
- This class is parameterized over the four graph element types
- (<code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>, <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code>, <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code>, and
- <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>) so that you can extend those interfaces and also
- extend this class, and the helper methods will all return your new types.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#GraphingVisitor(com.google.inject.grapher.NodeIdFactory<K>, com.google.inject.grapher.InterfaceNode.Factory<K, N>, com.google.inject.grapher.ImplementationNode.Factory<K, M>, com.google.inject.grapher.BindingEdge.Factory<K, B>, com.google.inject.grapher.DependencyEdge.Factory<K, D>, com.google.inject.grapher.NodeAliasFactory<K>)">GraphingVisitor</a></span>(<a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt; idFactory, <a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">Factory</a>&lt;K,&nbsp;N&gt; interfaceNodeFactory, <a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">Factory</a>&lt;K,&nbsp;M&gt; implementationNodeFactory, <a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">Factory</a>&lt;K,&nbsp;B&gt; bindingEdgeFactory, <a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">Factory</a>&lt;K,&nbsp;D&gt; dependencyEdgeFactory, <a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt; nodeAliasFactory)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.ConstructorBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visitor for <code><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a></code>s.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visitor for <code><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.ExposedBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Currently not displayed on the graph.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.InstanceBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visitor for <code><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visitor for <code><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.ProviderBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visitor for <code><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Same as <code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.InstanceBinding<?>)">visit(InstanceBinding)</a></code>, but the
- <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> is <code><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html#PROVIDER">PROVIDER</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Same as <code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<?>)">visit(LinkedKeyBinding)</a></code>, but the
- <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> is <code><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html#PROVIDER">PROVIDER</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.UntargettedBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Currently not displayed on the graph.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            K</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#getClassNodeId(com.google.inject.Binding<?>)">getClassNodeId</a></span>(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Helper method to return the standard node ID for the <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>'s
- <code><a href="../../../../com/google/inject/Key.html">Key</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            K</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#getInstanceNodeId(com.google.inject.Binding<?>)">getInstanceNodeId</a></span>(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Helper method to return the instance node ID for the <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>'s
- <code><a href="../../../../com/google/inject/Key.html">Key</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            B</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newBindingEdge(K, K, com.google.inject.grapher.BindingEdge.Type)">newBindingEdge</a></span>(K nodeId, K toId, <a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a> type)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> from the given node to the specified
- node.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            M</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newClassImplementationNode(com.google.inject.Binding<?>, com.google.inject.spi.InjectionPoint, java.util.Collection<com.google.inject.spi.InjectionPoint>)">newClassImplementationNode</a></span>(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding, <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a> constructorInjectionPoint, Collection&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt; memberInjectionPoints)</nobr>
-        
-        <div class="jd-descrdiv">Creates and returns a new <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> for the given
- <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>, where the <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code> is for a class that Guice
- will instantiate, rather than a specific instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            D</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newDependencyEdge(K, com.google.inject.spi.InjectionPoint, com.google.inject.spi.Dependency<?>)">newDependencyEdge</a></span>(K nodeId, <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a> injectionPoint, <a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt; dependency)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> from the given node to a
- <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;D&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newDependencyEdges(K, M, java.util.Collection<com.google.inject.spi.Dependency<?>>)">newDependencyEdges</a></span>(K nodeId, M node, Collection&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt; dependencies)</nobr>
-        
-        <div class="jd-descrdiv">Adds <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>s to the graph for each of the provided
- <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code>s.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            M</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newInstanceImplementationNode(com.google.inject.Binding<?>, java.lang.Object)">newInstanceImplementationNode</a></span>(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding, Object instance)</nobr>
-        
-        <div class="jd-descrdiv">Creates and returns a new <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> for the given
- <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>, where the <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code> is for an instance, rather than
- a class.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            N</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newInterfaceNode(com.google.inject.Binding<?>)">newInterfaceNode</a></span>(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Creates and returns a new <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> object for the given
- <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.BindingTargetVisitor" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">com.google.inject.spi.BindingTargetVisitor</a>
-
-<div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor">
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConstructorBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a constructor binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding created from converting a bound instance to a new type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ExposedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a key exposed from an enclosed private environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.InstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a linked key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.UntargettedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an untargetted binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="GraphingVisitor(com.google.inject.grapher.NodeIdFactory<K>, com.google.inject.grapher.InterfaceNode.Factory<K, N>, com.google.inject.grapher.ImplementationNode.Factory<K, M>, com.google.inject.grapher.BindingEdge.Factory<K, B>, com.google.inject.grapher.DependencyEdge.Factory<K, D>, com.google.inject.grapher.NodeAliasFactory<K>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">GraphingVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt; idFactory, <a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">Factory</a>&lt;K,&nbsp;N&gt; interfaceNodeFactory, <a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">Factory</a>&lt;K,&nbsp;M&gt; implementationNodeFactory, <a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">Factory</a>&lt;K,&nbsp;B&gt; bindingEdgeFactory, <a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">Factory</a>&lt;K,&nbsp;D&gt; dependencyEdgeFactory, <a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt; nodeAliasFactory)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visit(com.google.inject.spi.ConstructorBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Void
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visitor for <code><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a></code>s. These are for classes that Guice
- will instantiate to satisfy injection requests. We create a new
- <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> for the class, then add edges to everything
- that it depends on to be instantiated.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newClassImplementationNode(com.google.inject.Binding<?>, com.google.inject.spi.InjectionPoint, java.util.Collection<com.google.inject.spi.InjectionPoint>)">newClassImplementationNode(Binding, InjectionPoint, Collection)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newDependencyEdges(K, M, java.util.Collection<com.google.inject.spi.Dependency<?>>)">newDependencyEdges(Object, ImplementationNode, Collection)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ConvertedConstantBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Void
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visitor for <code><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a></code>. The <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>'s
- <code><a href="../../../../com/google/inject/Key.html">Key</a></code> will be of an annotated primitive type, and the value of
- <code><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html#getSourceKey()">getSourceKey()</a></code> will be of a
- String with the same annotation.
- <p>
- We render this as an <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> that has a
- <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> to the source <code><a href="../../../../com/google/inject/Key.html">Key</a></code>. That will then be rendered
- by <code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.InstanceBinding<?>)">visit(InstanceBinding)</a></code> as an <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>
- with a <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> to the String instance.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newInterfaceNode(com.google.inject.Binding<?>)">newInterfaceNode(Binding)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newBindingEdge(K, K, com.google.inject.grapher.BindingEdge.Type)">newBindingEdge(Object, Object, com.google.inject.grapher.BindingEdge.Type)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ExposedBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Void
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Currently not displayed on the graph.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.InstanceBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Void
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visitor for <code><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a></code>. We render two nodes in this case: a
- <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> for the binding's <code><a href="../../../../com/google/inject/Key.html">Key</a></code>, and then an
- <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> for the instance Object itself. We run
- a binding node between them.
- <p>
- We then render any <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>s that the instance may have,
- which come either from <code><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></code>s (method and field) on the
- instance, or on <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code>s the instance declares through the
- <code><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></code> interface.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newInterfaceNode(com.google.inject.Binding<?>)">newInterfaceNode(Binding)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newBindingEdge(K, K, com.google.inject.grapher.BindingEdge.Type)">newBindingEdge(Object, Object, com.google.inject.grapher.BindingEdge.Type)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newInstanceImplementationNode(com.google.inject.Binding<?>, java.lang.Object)">newInstanceImplementationNode(Binding, Object)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newDependencyEdges(K, M, java.util.Collection<com.google.inject.spi.Dependency<?>>)">newDependencyEdges(Object, ImplementationNode, java.util.Collection)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.LinkedKeyBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Void
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visitor for <code><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a></code>. This is the standard <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>
- you get from binding an interface class to an implementation class. We
- create an <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>, then draw a <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> to the
- node of the implementing class.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newInterfaceNode(com.google.inject.Binding<?>)">newInterfaceNode(Binding)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newBindingEdge(K, K, com.google.inject.grapher.BindingEdge.Type)">newBindingEdge(Object, Object, com.google.inject.grapher.BindingEdge.Type)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Void
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visitor for <code><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a></code>. These <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>s arise from an
- <code><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></code> for the <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> interface. Since this
- isn't tremendously interesting information, we don't render this binding
- on the graph, and instead let the <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> go straight from
- the <code><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></code> to the node specified by
- <code><a href="../../../../com/google/inject/spi/ProviderBinding.html#getProvidedKey()">getProvidedKey()</a></code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html#newAlias(K, K)">newAlias(Object, Object)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderInstanceBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Void
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Same as <code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.InstanceBinding<?>)">visit(InstanceBinding)</a></code>, but the
- <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> is <code><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html#PROVIDER">PROVIDER</a></code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newInterfaceNode(com.google.inject.Binding<?>)">newInterfaceNode(Binding)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newBindingEdge(K, K, com.google.inject.grapher.BindingEdge.Type)">newBindingEdge(Object, Object, com.google.inject.grapher.BindingEdge.Type)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newInstanceImplementationNode(com.google.inject.Binding<?>, java.lang.Object)">newInstanceImplementationNode(Binding, Object)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newDependencyEdges(K, M, java.util.Collection<com.google.inject.spi.Dependency<?>>)">newDependencyEdges(Object, ImplementationNode, java.util.Collection)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderKeyBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Void
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Same as <code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<?>)">visit(LinkedKeyBinding)</a></code>, but the
- <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> is <code><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html#PROVIDER">PROVIDER</a></code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newInterfaceNode(com.google.inject.Binding<?>)">newInterfaceNode(Binding)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newBindingEdge(K, K, com.google.inject.grapher.BindingEdge.Type)">newBindingEdge(Object, Object, com.google.inject.grapher.BindingEdge.Type)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.UntargettedBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Void
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Currently not displayed on the graph.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="getClassNodeId(com.google.inject.Binding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        K
-      </span>
-      <span class="sympad">getClassNodeId</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Helper method to return the standard node ID for the <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>'s
- <code><a href="../../../../com/google/inject/Key.html">Key</a></code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/NodeIdFactory.html#getClassNodeId(com.google.inject.Key<?>)">getClassNodeId(Key)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getInstanceNodeId(com.google.inject.Binding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        K
-      </span>
-      <span class="sympad">getInstanceNodeId</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Helper method to return the instance node ID for the <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>'s
- <code><a href="../../../../com/google/inject/Key.html">Key</a></code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/NodeIdFactory.html#getInstanceNodeId(com.google.inject.Key<?>)">getInstanceNodeId(Key)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="newBindingEdge(K, K, com.google.inject.grapher.BindingEdge.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        B
-      </span>
-      <span class="sympad">newBindingEdge</span>
-      <span class="normal">(K nodeId, K toId, <a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a> type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a new <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> from the given node to the specified
- node.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>nodeId</td>
-          <td>ID of the <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> that binds to the other.</td>
-        </tr>
-        <tr>
-          <th>toId</td>
-          <td>The node ID of a class or instance that is bound.</td>
-        </tr>
-        <tr>
-          <th>type</td>
-          <td>The <code><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></code> of this binding.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>The newly-created and added <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code>.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="newClassImplementationNode(com.google.inject.Binding<?>, com.google.inject.spi.InjectionPoint, java.util.Collection<com.google.inject.spi.InjectionPoint>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        M
-      </span>
-      <span class="sympad">newClassImplementationNode</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding, <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a> constructorInjectionPoint, Collection&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt; memberInjectionPoints)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates and returns a new <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> for the given
- <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>, where the <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code> is for a class that Guice
- will instantiate, rather than a specific instance.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newDependencyEdge(K, com.google.inject.spi.InjectionPoint, com.google.inject.spi.Dependency<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        D
-      </span>
-      <span class="sympad">newDependencyEdge</span>
-      <span class="normal">(K nodeId, <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a> injectionPoint, <a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt; dependency)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a new <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> from the given node to a
- <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code>.
- <p>
- This method takes more comprehensive parameters than strictly necessary
- in case they would be useful to overriding implementations.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>nodeId</td>
-          <td>ID of the <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> where the edges will start.</td>
-        </tr>
-        <tr>
-          <th>injectionPoint</td>
-          <td>The <code><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></code> that gave rise to this
-     <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code>, if one exists. Used to figure out which
-     Member the edge should point from.</td>
-        </tr>
-        <tr>
-          <th>dependency</td>
-          <td>The <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code> to represent with this edge.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>The newly-created and added <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="newDependencyEdges(K, M, java.util.Collection<com.google.inject.spi.Dependency<?>>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        Collection&lt;D&gt;
-      </span>
-      <span class="sympad">newDependencyEdges</span>
-      <span class="normal">(K nodeId, M node, Collection&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt; dependencies)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Adds <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>s to the graph for each of the provided
- <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code>s. These will be from the given node ID to the
- <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code>'s <code><a href="../../../../com/google/inject/Key.html">Key</a></code>.
- <p>
- If a <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code> has an associated <code><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></code>, its
- member will be added to the given <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> and the edge
- will start at the Member.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>nodeId</td>
-          <td>ID of the node that should be the tail of the
-     <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>s.</td>
-        </tr>
-        <tr>
-          <th>node</td>
-          <td>An <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> to add Members to.</td>
-        </tr>
-        <tr>
-          <th>dependencies</td>
-          <td>Collection of <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code>s from the
-     <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>A Collection of the <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>s that were
-     added to the graph.
-</li></ul>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newDependencyEdge(K, com.google.inject.spi.InjectionPoint, com.google.inject.spi.Dependency<?>)">newDependencyEdge(Object, InjectionPoint, Dependency)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="newInstanceImplementationNode(com.google.inject.Binding<?>, java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        M
-      </span>
-      <span class="sympad">newInstanceImplementationNode</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding, Object instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates and returns a new <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> for the given
- <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>, where the <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code> is for an instance, rather than
- a class.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newInterfaceNode(com.google.inject.Binding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        N
-      </span>
-      <span class="sympad">newInterfaceNode</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates and returns a new <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> object for the given
- <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/ImplementationNode.Factory.html b/javadoc/com/google/inject/grapher/ImplementationNode.Factory.html
deleted file mode 100755
index a4338e5..0000000
--- a/javadoc/com/google/inject/grapher/ImplementationNode.Factory.html
+++ /dev/null
@@ -1,586 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ImplementationNode.Factory
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-    static 
-     
-    
-    interface
-<h1>ImplementationNode.Factory</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.ImplementationNode.Factory&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">com.google.inject.grapher.ImplementationNode</a>&lt;K&gt;&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></td>
-              <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Factory interface for <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code>s. Renderer
- implementations will need to provide an implementation for this.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html#newImplementationNode(K)">newImplementationNode</a></span>(K nodeId)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> and adds it to the graph.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="newImplementationNode(K)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">newImplementationNode</span>
-      <span class="normal">(K nodeId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a new <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> and adds it to the graph.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>nodeId</td>
-          <td>ID for the node.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>The new <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> instance.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/ImplementationNode.html b/javadoc/com/google/inject/grapher/ImplementationNode.html
deleted file mode 100755
index c2f0a9d..0000000
--- a/javadoc/com/google/inject/grapher/ImplementationNode.html
+++ /dev/null
@@ -1,755 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ImplementationNode
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ImplementationNode</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.ImplementationNode&lt;K&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></td>
-              <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> methods to display
- operations on a <code><a href="../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Node for classes and instances that have Dependencys and are
- bound to <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>s. These nodes will often have fields for
- Members that are InjectionPoints.</p>
-
-
-
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code></li>
-      </ul>
-  </div>
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_3.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        interface</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</td>
-      <td class="jd-descrcol" width="100%">Factory interface for <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code>s.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ImplementationNode.html#addMember(java.lang.reflect.Member)">addMember</a></span>(Member member)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ImplementationNode.html#setClassKey(com.google.inject.Key<?>)">setClassKey</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Sets the <code><a href="../../../../com/google/inject/Key.html">Key</a></code> that this node is for.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ImplementationNode.html#setInstance(java.lang.Object)">setInstance</a></span>(Object instance)</nobr>
-        
-        <div class="jd-descrdiv">Sets the Object that's the already-created instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ImplementationNode.html#setSource(java.lang.Object)">setSource</a></span>(Object source)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="addMember(java.lang.reflect.Member)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">addMember</span>
-      <span class="normal">(Member member)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setClassKey(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">setClassKey</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Sets the <code><a href="../../../../com/google/inject/Key.html">Key</a></code> that this node is for. Used when the node is
- representing a class that Guice will instantiate.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setInstance(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">setInstance</span>
-      <span class="normal">(Object instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Sets the Object that's the already-created instance. Used when
- this node is represeting the instance instead of a class.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setSource(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">setSource</span>
-      <span class="normal">(Object source)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/InjectorGrapher.html b/javadoc/com/google/inject/grapher/InjectorGrapher.html
deleted file mode 100755
index 41ec2dd..0000000
--- a/javadoc/com/google/inject/grapher/InjectorGrapher.html
+++ /dev/null
@@ -1,967 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InjectorGrapher
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>InjectorGrapher</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.InjectorGrapher</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Root class for graphing an <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code>. Bound in <code><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></code>.
- <p>
- Use <code><a href="../../../../com/google/inject/grapher/InjectorGrapher.html#of(com.google.inject.Injector)">of(Injector)</a></code> to specify the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> to use, and
- graph() to graph the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> using the currently-bound
- <code><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code>.
- <p>
- By default, this will graph the entire <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code>. Use
- <code><a href="../../../../com/google/inject/grapher/InjectorGrapher.html#rootedAt(java.lang.Class<?>...)">rootedAt(Class)</a></code> to specify an initial set of Classes to
- use, and this will graph their transitive bindings and dependencies.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html#InjectorGrapher(com.google.inject.spi.BindingTargetVisitor<java.lang.Object, java.util.Collection<com.google.inject.Key<?>>>, com.google.inject.spi.BindingTargetVisitor<java.lang.Object, java.lang.Void>, com.google.inject.grapher.Renderer)">InjectorGrapher</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;Object,&nbsp;Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;&gt; keyVisitor, <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;Object,&nbsp;Void&gt; graphingVisitor, <a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a> renderer)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html#graph()">graph</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Renders a graph with the bound <code><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html#of(com.google.inject.Injector)">of</a></span>(<a href="../../../../com/google/inject/Injector.html">Injector</a> injector)</nobr>
-        
-        <div class="jd-descrdiv">Sets the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> to graph.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html#rootedAt(java.lang.Class<?>...)">rootedAt</a></span>(Class...&lt;?&gt; classes)</nobr>
-        
-        <div class="jd-descrdiv">Sets an initial group of Classes to use as the starting point for
- the graph.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="InjectorGrapher(com.google.inject.spi.BindingTargetVisitor<java.lang.Object, java.util.Collection<com.google.inject.Key<?>>>, com.google.inject.spi.BindingTargetVisitor<java.lang.Object, java.lang.Void>, com.google.inject.grapher.Renderer)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">InjectorGrapher</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;Object,&nbsp;Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;&gt; keyVisitor, <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;Object,&nbsp;Void&gt; graphingVisitor, <a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a> renderer)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="graph()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">graph</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Renders a graph with the bound <code><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code>. The <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code>
- must have already been specified with <code><a href="../../../../com/google/inject/grapher/InjectorGrapher.html#of(com.google.inject.Injector)">of(Injector)</a></code>.
-</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>IOException</td>
-            <td></td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="of(com.google.inject.Injector)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a>
-      </span>
-      <span class="sympad">of</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Injector.html">Injector</a> injector)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Sets the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> to graph.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="rootedAt(java.lang.Class<?>...)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a>
-      </span>
-      <span class="sympad">rootedAt</span>
-      <span class="normal">(Class...&lt;?&gt; classes)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Sets an initial group of Classes to use as the starting point for
- the graph. The graph will be of these classes and their transitive
- dependencies and bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/InterfaceNode.Factory.html b/javadoc/com/google/inject/grapher/InterfaceNode.Factory.html
deleted file mode 100755
index d65d413..0000000
--- a/javadoc/com/google/inject/grapher/InterfaceNode.Factory.html
+++ /dev/null
@@ -1,586 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InterfaceNode.Factory
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-    static 
-     
-    
-    interface
-<h1>InterfaceNode.Factory</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.InterfaceNode.Factory&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">com.google.inject.grapher.InterfaceNode</a>&lt;K&gt;&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></td>
-              <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Factory interface for <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>s. Renderer implementations
- will need to provide an implementation for this.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html#newInterfaceNode(K)">newInterfaceNode</a></span>(K nodeId)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> and adds it to the graph.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="newInterfaceNode(K)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">newInterfaceNode</span>
-      <span class="normal">(K nodeId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a new <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> and adds it to the graph.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>nodeId</td>
-          <td>ID for the node.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>The new <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> instance.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/InterfaceNode.html b/javadoc/com/google/inject/grapher/InterfaceNode.html
deleted file mode 100755
index 286591c..0000000
--- a/javadoc/com/google/inject/grapher/InterfaceNode.html
+++ /dev/null
@@ -1,648 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InterfaceNode
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>InterfaceNode</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.InterfaceNode&lt;K&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></td>
-              <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> methods to display
- operations on a <code><a href="../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Node for an interface class that has been bound to an implementation class
- or instance. These nodes are basically defined by a <code><a href="../../../../com/google/inject/Key.html">Key</a></code>.</p>
-
-
-
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code></li>
-      </ul>
-  </div>
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_3.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        interface</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</td>
-      <td class="jd-descrcol" width="100%">Factory interface for <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>s.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/InterfaceNode.html#setKey(com.google.inject.Key<?>)">setKey</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/InterfaceNode.html#setSource(java.lang.Object)">setSource</a></span>(Object source)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="setKey(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">setKey</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setSource(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">setSource</span>
-      <span class="normal">(Object source)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/NameFactory.html b/javadoc/com/google/inject/grapher/NameFactory.html
deleted file mode 100755
index 3e13871..0000000
--- a/javadoc/com/google/inject/grapher/NameFactory.html
+++ /dev/null
@@ -1,766 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  NameFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>NameFactory</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.NameFactory</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></td>
-              <td class="jd-descrcol" width="100%">Reasonable implementation for <code><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Interface for a service that provides nice Strings that we can
- display in the graph for the types that come up in Bindings.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getAnnotationName(com.google.inject.Key<?>)">getAnnotationName</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getClassName(com.google.inject.Key<?>)">getClassName</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getInstanceName(java.lang.Object)">getInstanceName</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getMemberName(java.lang.reflect.Member)">getMemberName</a></span>(Member member)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getSourceName(java.lang.Object)">getSourceName</a></span>(Object source)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getAnnotationName(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getAnnotationName</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getClassName(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getClassName</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getInstanceName(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getInstanceName</span>
-      <span class="normal">(Object instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMemberName(java.lang.reflect.Member)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getMemberName</span>
-      <span class="normal">(Member member)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSourceName(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getSourceName</span>
-      <span class="normal">(Object source)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/NodeAliasFactory.html b/javadoc/com/google/inject/grapher/NodeAliasFactory.html
deleted file mode 100755
index d743048..0000000
--- a/javadoc/com/google/inject/grapher/NodeAliasFactory.html
+++ /dev/null
@@ -1,576 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  NodeAliasFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>NodeAliasFactory</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.NodeAliasFactory&lt;K&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></td>
-              <td class="jd-descrcol" width="100%"><code><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code> implementation that writes out a Graphviz DOT file of the
- graph.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Factory for aliasing one node ID to another. Used when we don't want to
- render Keys from Bindings that are not interesting.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html#newAlias(K, K)">newAlias</a></span>(K fromId, K toId)</nobr>
-        
-        <div class="jd-descrdiv">Makes edges that would point to <code>fromId</code> point to
- <code>toId</code> instead.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="newAlias(K, K)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">newAlias</span>
-      <span class="normal">(K fromId, K toId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Makes edges that would point to <code>fromId</code> point to
- <code>toId</code> instead.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/NodeIdFactory.html b/javadoc/com/google/inject/grapher/NodeIdFactory.html
deleted file mode 100755
index 67b7027..0000000
--- a/javadoc/com/google/inject/grapher/NodeIdFactory.html
+++ /dev/null
@@ -1,624 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  NodeIdFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>NodeIdFactory</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.NodeIdFactory&lt;K&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></td>
-              <td class="jd-descrcol" width="100%">IdFactory implementation that for String node IDs.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Factory for abstract identifiers for elements on the graph. Most graph nodes
- will correspond directly to <code><a href="../../../../com/google/inject/Key.html">Key</a></code>s, but we do this for additional
- flexibility and because instances do not have separate <code><a href="../../../../com/google/inject/Key.html">Key</a></code>s from the
- interfaces they are bound to.
- <p>
- Node IDs are treated as opaque values by <code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a></code> and the
- other classes in this package.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            K</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html#getClassNodeId(com.google.inject.Key<?>)">getClassNodeId</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            K</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html#getInstanceNodeId(com.google.inject.Key<?>)">getInstanceNodeId</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getClassNodeId(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        K
-      </span>
-      <span class="sympad">getClassNodeId</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getInstanceNodeId(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        K
-      </span>
-      <span class="sympad">getInstanceNodeId</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/Renderer.html b/javadoc/com/google/inject/grapher/Renderer.html
deleted file mode 100755
index ec75d5d..0000000
--- a/javadoc/com/google/inject/grapher/Renderer.html
+++ /dev/null
@@ -1,584 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Renderer
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>Renderer</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.Renderer</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></td>
-              <td class="jd-descrcol" width="100%"><code><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code> implementation that writes out a Graphviz DOT file of the
- graph.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Interface for the service that renders the graph. It is assumed that the
- implementations for <code><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a></code>,
- <code><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a></code>, etc. will have direct access to the
- internals of the <code><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code> implementation, so the only external
- interface needed is the <code><a href="../../../../com/google/inject/grapher/Renderer.html#render()">render()</a></code> call that <code><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></code>
- calls when it's done.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/Renderer.html#render()">render</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="render()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">render</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>IOException</td>
-            <td></td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/ShortNameFactory.html b/javadoc/com/google/inject/grapher/ShortNameFactory.html
deleted file mode 100755
index bf20650..0000000
--- a/javadoc/com/google/inject/grapher/ShortNameFactory.html
+++ /dev/null
@@ -1,1275 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ShortNameFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>ShortNameFactory</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.ShortNameFactory</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Reasonable implementation for <code><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></code>. Mostly takes various
- <code><a href="null#toString()">toString()</a></code>s and strips package names out of them so that
- they'll fit on the graph.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html#ShortNameFactory()">ShortNameFactory</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html#getAnnotationName(com.google.inject.Key<?>)">getAnnotationName</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html#getClassName(com.google.inject.Key<?>)">getClassName</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html#getInstanceName(java.lang.Object)">getInstanceName</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html#getMemberName(java.lang.reflect.Member)">getMemberName</a></span>(Member member)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html#getSourceName(java.lang.Object)">getSourceName</a></span>(Object source)</nobr>
-        
-        <div class="jd-descrdiv">Returns a name for a Guice "source" object.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html#getFileString(java.lang.StackTraceElement)">getFileString</a></span>(StackTraceElement stackTraceElement)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html#getMethodString(java.lang.reflect.Method)">getMethodString</a></span>(Method method)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.NameFactory" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.NameFactory-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/grapher/NameFactory.html">com.google.inject.grapher.NameFactory</a>
-
-<div id="inherited-methods-com.google.inject.grapher.NameFactory">
-  <div id="inherited-methods-com.google.inject.grapher.NameFactory-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.NameFactory-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getAnnotationName(com.google.inject.Key<?>)">getAnnotationName</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getClassName(com.google.inject.Key<?>)">getClassName</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getInstanceName(java.lang.Object)">getInstanceName</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getMemberName(java.lang.reflect.Member)">getMemberName</a></span>(Member member)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getSourceName(java.lang.Object)">getSourceName</a></span>(Object source)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="ShortNameFactory()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ShortNameFactory</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getAnnotationName(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getAnnotationName</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getClassName(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getClassName</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getInstanceName(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getInstanceName</span>
-      <span class="normal">(Object instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMemberName(java.lang.reflect.Member)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getMemberName</span>
-      <span class="normal">(Member member)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSourceName(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getSourceName</span>
-      <span class="normal">(Object source)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a name for a Guice "source" object. This will typically be either
- a StackTraceElement for when the binding is made to the instance,
- or a Method when a provider method is used.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="getFileString(java.lang.StackTraceElement)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getFileString</span>
-      <span class="normal">(StackTraceElement stackTraceElement)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMethodString(java.lang.reflect.Method)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getMethodString</span>
-      <span class="normal">(Method method)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/StringNodeIdFactory.html b/javadoc/com/google/inject/grapher/StringNodeIdFactory.html
deleted file mode 100755
index d664139..0000000
--- a/javadoc/com/google/inject/grapher/StringNodeIdFactory.html
+++ /dev/null
@@ -1,959 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  StringNodeIdFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>StringNodeIdFactory</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.StringNodeIdFactory</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>IdFactory implementation that for String node IDs. The IDs
- are comprised of letters, numbers and underscores.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html#StringNodeIdFactory()">StringNodeIdFactory</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html#getClassNodeId(com.google.inject.Key<?>)">getClassNodeId</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html#getInstanceNodeId(com.google.inject.Key<?>)">getInstanceNodeId</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.NodeIdFactory" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.NodeIdFactory-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/grapher/NodeIdFactory.html">com.google.inject.grapher.NodeIdFactory</a>
-
-<div id="inherited-methods-com.google.inject.grapher.NodeIdFactory">
-  <div id="inherited-methods-com.google.inject.grapher.NodeIdFactory-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.NodeIdFactory-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            K</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html#getClassNodeId(com.google.inject.Key<?>)">getClassNodeId</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            K</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html#getInstanceNodeId(com.google.inject.Key<?>)">getInstanceNodeId</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="StringNodeIdFactory()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">StringNodeIdFactory</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getClassNodeId(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getClassNodeId</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getInstanceNodeId(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getInstanceNodeId</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/TransitiveDependencyVisitor.html b/javadoc/com/google/inject/grapher/TransitiveDependencyVisitor.html
deleted file mode 100755
index c98387e..0000000
--- a/javadoc/com/google/inject/grapher/TransitiveDependencyVisitor.html
+++ /dev/null
@@ -1,1435 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  TransitiveDependencyVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>TransitiveDependencyVisitor</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.TransitiveDependencyVisitor</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p><code><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> that returns a Collection of the
- <code><a href="../../../../com/google/inject/Key.html">Key</a></code>s of each Binding's dependencies. Used by
- InjectorGropher to walk the dependency graph from a starting set of
- Bindings.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#TransitiveDependencyVisitor()">TransitiveDependencyVisitor</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#visit(com.google.inject.spi.ConstructorBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&gt; binding)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&gt; binding)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#visit(com.google.inject.spi.ExposedBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&gt; binding)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#visit(com.google.inject.spi.InstanceBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&gt; binding)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&gt; binding)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#visit(com.google.inject.spi.ProviderBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&gt; binding)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&gt; binding)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&gt; binding)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#visit(com.google.inject.spi.UntargettedBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&gt; binding)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.BindingTargetVisitor" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">com.google.inject.spi.BindingTargetVisitor</a>
-
-<div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor">
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConstructorBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a constructor binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding created from converting a bound instance to a new type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ExposedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a key exposed from an enclosed private environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.InstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a linked key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.UntargettedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an untargetted binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="TransitiveDependencyVisitor()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">TransitiveDependencyVisitor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visit(com.google.inject.spi.ConstructorBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ConvertedConstantBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ExposedBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.InstanceBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.LinkedKeyBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderInstanceBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderKeyBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.UntargettedBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/ArrowType.html b/javadoc/com/google/inject/grapher/graphviz/ArrowType.html
deleted file mode 100755
index 01c3617..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/ArrowType.html
+++ /dev/null
@@ -1,1713 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  ArrowType
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-  <a href="#enumconstants">Enums</a>
-  
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    enum
-<h1>ArrowType</h1>
-
-
-
-  
-  
-  
-
-  
-    extends Enum&lt;E&nbsp;extends&nbsp;Enum&lt;E&gt;&gt;<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Enum&lt;E&nbsp;extends&nbsp;java.lang.Enum&lt;E&gt;&gt;</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.ArrowType</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Arrow symbols that are available from Graphviz. These can be composed by
- concatenation to make double arrows and such.
- <p>
- See: http://www.graphviz.org/doc/info/arrows.html</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">BOX&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">BOX_OPEN&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">CROW&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">DIAMOND&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">DIAMOND_OPEN&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">DOT&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">DOT_OPEN&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">INVERTED&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">INVERTED_OPEN&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">NONE&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">NORMAL&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">NORMAL_OPEN&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">TEE&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">VEE&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html#valueOf(java.lang.String)">valueOf</a></span>(String name)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType[]</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html#values()">values</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Enum" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Enum-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Enum
-
-<div id="inherited-methods-java.lang.Enum">
-  <div id="inherited-methods-java.lang.Enum-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Enum-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(E arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;E&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getDeclaringClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">name</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">ordinal</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&nbsp;extends&nbsp;Enum&lt;T&gt;&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">valueOf</span>(Class&lt;T&gt; arg0, String arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Comparable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Comparable-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.Comparable
-
-<div id="inherited-methods-java.lang.Comparable">
-  <div id="inherited-methods-java.lang.Comparable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Comparable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(T arg0)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Enum Values</h2>
-
-
-
-
-<A NAME="BOX"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        BOX
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="BOX_OPEN"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        BOX_OPEN
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="CROW"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        CROW
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="DIAMOND"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        DIAMOND
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="DIAMOND_OPEN"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        DIAMOND_OPEN
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="DOT"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        DOT
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="DOT_OPEN"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        DOT_OPEN
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="INVERTED"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        INVERTED
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="INVERTED_OPEN"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        INVERTED_OPEN
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="NONE"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        NONE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="NORMAL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        NORMAL
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="NORMAL_OPEN"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        NORMAL_OPEN
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="TEE"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        TEE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="VEE"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        VEE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="valueOf(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-      <span class="sympad">valueOf</span>
-      <span class="normal">(String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="values()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType[]</a>
-      </span>
-      <span class="sympad">values</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html b/javadoc/com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html
deleted file mode 100755
index a40fa97..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html
+++ /dev/null
@@ -1,957 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  BindingEdgeFactory.GraphvizEdgeAdaptor
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-  <a href="#lfields">Fields</a>
-  
-
-
-
-  &#124; <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    protected
-     
-     
-    
-    class
-<h1>BindingEdgeFactory.GraphvizEdgeAdaptor</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.BindingEdgeFactory.GraphvizEdgeAdaptor</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.
-</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-    
-      <tr class="alt-color api apilevel-Guice_3.0" >
-          <td class="jd-typecol"><nobr>
-          protected
-          
-          final
-          <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></nobr></td>
-          <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html#edge">edge</a></td>
-          <td class="jd-descrcol" width="100%"></td>
-      </tr>
-      
-    
-
-</table>
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html#BindingEdgeFactory.GraphvizEdgeAdaptor(com.google.inject.grapher.graphviz.GraphvizEdge)">BindingEdgeFactory.GraphvizEdgeAdaptor</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html#setType(com.google.inject.grapher.BindingEdge.Type)">setType</a></span>(<a href="../../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a> type)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.BindingEdge" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.BindingEdge-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/BindingEdge.html">com.google.inject.grapher.BindingEdge</a>
-
-<div id="inherited-methods-com.google.inject.grapher.BindingEdge">
-  <div id="inherited-methods-com.google.inject.grapher.BindingEdge-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.BindingEdge-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/BindingEdge.html#setType(com.google.inject.grapher.BindingEdge.Type)">setType</a></span>(<a href="../../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a> type)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="edge"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a>
-      </span>
-        edge
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="BindingEdgeFactory.GraphvizEdgeAdaptor(com.google.inject.grapher.graphviz.GraphvizEdge)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">BindingEdgeFactory.GraphvizEdgeAdaptor</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="setType(com.google.inject.grapher.BindingEdge.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setType</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a> type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/BindingEdgeFactory.html b/javadoc/com/google/inject/grapher/graphviz/BindingEdgeFactory.html
deleted file mode 100755
index dfd420b..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/BindingEdgeFactory.html
+++ /dev/null
@@ -1,986 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  BindingEdgeFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>BindingEdgeFactory</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.BindingEdgeFactory</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Graphviz-specific implementation of <code><a href="../../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a></code>. Uses a
- <code><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></code> to delegate to a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_3.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        class</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></td>
-      <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html#BindingEdgeFactory(com.google.inject.grapher.graphviz.GraphvizRenderer)">BindingEdgeFactory</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a> renderer)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html#newBindingEdge(java.lang.String, java.lang.String)">newBindingEdge</a></span>(String fromId, String toId)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html#newAdaptor(com.google.inject.grapher.graphviz.GraphvizEdge)">newAdaptor</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.BindingEdge.Factory" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.BindingEdge.Factory-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/BindingEdge.Factory.html">com.google.inject.grapher.BindingEdge.Factory</a>
-
-<div id="inherited-methods-com.google.inject.grapher.BindingEdge.Factory">
-  <div id="inherited-methods-com.google.inject.grapher.BindingEdge.Factory-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.BindingEdge.Factory-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/BindingEdge.Factory.html#newBindingEdge(K, K)">newBindingEdge</a></span>(K fromId, K toId)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> instance and adds it to the graph.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="BindingEdgeFactory(com.google.inject.grapher.graphviz.GraphvizRenderer)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">BindingEdgeFactory</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a> renderer)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="newBindingEdge(java.lang.String, java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;String&gt;
-      </span>
-      <span class="sympad">newBindingEdge</span>
-      <span class="normal">(String fromId, String toId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="newAdaptor(com.google.inject.grapher.graphviz.GraphvizEdge)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a>
-      </span>
-      <span class="sympad">newAdaptor</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/CompassPoint.html b/javadoc/com/google/inject/grapher/graphviz/CompassPoint.html
deleted file mode 100755
index 061350c..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/CompassPoint.html
+++ /dev/null
@@ -1,1557 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  CompassPoint
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-  <a href="#enumconstants">Enums</a>
-  
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    enum
-<h1>CompassPoint</h1>
-
-
-
-  
-  
-  
-
-  
-    extends Enum&lt;E&nbsp;extends&nbsp;Enum&lt;E&gt;&gt;<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Enum&lt;E&nbsp;extends&nbsp;java.lang.Enum&lt;E&gt;&gt;</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.CompassPoint</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Enum for the "compass point" values used to control where edge
- end points appear on the graph.
- <p>
- See: http://www.graphviz.org/doc/info/attrs.html#k:portPos</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">CENTER&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">EAST&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">EXTERIOR_SIDE&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">NORTH&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">NORTH_EAST&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">NORTH_WEST&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">SOUTH&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">SOUTH_EAST&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">SOUTH_WEST&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">WEST&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html#valueOf(java.lang.String)">valueOf</a></span>(String name)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint[]</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html#values()">values</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Enum" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Enum-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Enum
-
-<div id="inherited-methods-java.lang.Enum">
-  <div id="inherited-methods-java.lang.Enum-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Enum-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(E arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;E&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getDeclaringClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">name</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">ordinal</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&nbsp;extends&nbsp;Enum&lt;T&gt;&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">valueOf</span>(Class&lt;T&gt; arg0, String arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Comparable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Comparable-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.Comparable
-
-<div id="inherited-methods-java.lang.Comparable">
-  <div id="inherited-methods-java.lang.Comparable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Comparable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(T arg0)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Enum Values</h2>
-
-
-
-
-<A NAME="CENTER"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        CENTER
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="EAST"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        EAST
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="EXTERIOR_SIDE"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        EXTERIOR_SIDE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="NORTH"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        NORTH
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="NORTH_EAST"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        NORTH_EAST
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="NORTH_WEST"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        NORTH_WEST
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="SOUTH"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        SOUTH
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="SOUTH_EAST"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        SOUTH_EAST
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="SOUTH_WEST"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        SOUTH_WEST
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="WEST"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        WEST
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="valueOf(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-      <span class="sympad">valueOf</span>
-      <span class="normal">(String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="values()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint[]</a>
-      </span>
-      <span class="sympad">values</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html b/javadoc/com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html
deleted file mode 100755
index a13ec3b..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html
+++ /dev/null
@@ -1,849 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  DependencyEdgeFactory.GraphvizEdgeAdaptor
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-  <a href="#lfields">Fields</a>
-  
-
-
-
-  &#124; <a href="#pubctors">Ctors</a>
-  
-
-
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    protected
-     
-     
-    
-    class
-<h1>DependencyEdgeFactory.GraphvizEdgeAdaptor</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.DependencyEdgeFactory.GraphvizEdgeAdaptor</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.
-</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-    
-      <tr class="alt-color api apilevel-Guice_3.0" >
-          <td class="jd-typecol"><nobr>
-          protected
-          
-          final
-          <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></nobr></td>
-          <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html#edge">edge</a></td>
-          <td class="jd-descrcol" width="100%"></td>
-      </tr>
-      
-    
-
-</table>
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html#DependencyEdgeFactory.GraphvizEdgeAdaptor(com.google.inject.grapher.graphviz.GraphvizEdge)">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="edge"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a>
-      </span>
-        edge
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="DependencyEdgeFactory.GraphvizEdgeAdaptor(com.google.inject.grapher.graphviz.GraphvizEdge)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">DependencyEdgeFactory.GraphvizEdgeAdaptor</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/DependencyEdgeFactory.html b/javadoc/com/google/inject/grapher/graphviz/DependencyEdgeFactory.html
deleted file mode 100755
index ce151c8..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/DependencyEdgeFactory.html
+++ /dev/null
@@ -1,986 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  DependencyEdgeFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>DependencyEdgeFactory</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.DependencyEdgeFactory</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Graphviz-specific implementation of <code><a href="../../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a></code>. Uses a
- <code><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></code> to delegate to a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_3.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        class</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></td>
-      <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html#DependencyEdgeFactory(com.google.inject.grapher.graphviz.GraphvizRenderer, com.google.inject.grapher.graphviz.PortIdFactory)">DependencyEdgeFactory</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a> renderer, <a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a> portIdFactory)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html#newDependencyEdge(java.lang.String, com.google.inject.spi.InjectionPoint, java.lang.String)">newDependencyEdge</a></span>(String fromId, <a href="../../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a> fromPoint, String toId)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html#newAdaptor(com.google.inject.grapher.graphviz.GraphvizEdge)">newAdaptor</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.DependencyEdge.Factory" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.DependencyEdge.Factory-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/DependencyEdge.Factory.html">com.google.inject.grapher.DependencyEdge.Factory</a>
-
-<div id="inherited-methods-com.google.inject.grapher.DependencyEdge.Factory">
-  <div id="inherited-methods-com.google.inject.grapher.DependencyEdge.Factory-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.DependencyEdge.Factory-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/DependencyEdge.Factory.html#newDependencyEdge(K, com.google.inject.spi.InjectionPoint, K)">newDependencyEdge</a></span>(K fromId, <a href="../../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a> fromPoint, K toId)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> and adds it to the graph.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="DependencyEdgeFactory(com.google.inject.grapher.graphviz.GraphvizRenderer, com.google.inject.grapher.graphviz.PortIdFactory)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">DependencyEdgeFactory</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a> renderer, <a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a> portIdFactory)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="newDependencyEdge(java.lang.String, com.google.inject.spi.InjectionPoint, java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;String&gt;
-      </span>
-      <span class="sympad">newDependencyEdge</span>
-      <span class="normal">(String fromId, <a href="../../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a> fromPoint, String toId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="newAdaptor(com.google.inject.grapher.graphviz.GraphvizEdge)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a>
-      </span>
-      <span class="sympad">newAdaptor</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/EdgeStyle.html b/javadoc/com/google/inject/grapher/graphviz/EdgeStyle.html
deleted file mode 100755
index c6c19e1..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/EdgeStyle.html
+++ /dev/null
@@ -1,1361 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  EdgeStyle
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-  <a href="#enumconstants">Enums</a>
-  
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    enum
-<h1>EdgeStyle</h1>
-
-
-
-  
-  
-  
-
-  
-    extends Enum&lt;E&nbsp;extends&nbsp;Enum&lt;E&gt;&gt;<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Enum&lt;E&nbsp;extends&nbsp;java.lang.Enum&lt;E&gt;&gt;</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.EdgeStyle</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Styles for edges.
- <p>
- See: http://www.graphviz.org/doc/info/attrs.html#k:style</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">BOLD&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">DASHED&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">DOTTED&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">INVISIBLE&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">SOLID&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html#valueOf(java.lang.String)">valueOf</a></span>(String name)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle[]</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html#values()">values</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Enum" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Enum-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Enum
-
-<div id="inherited-methods-java.lang.Enum">
-  <div id="inherited-methods-java.lang.Enum-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Enum-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(E arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;E&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getDeclaringClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">name</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">ordinal</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&nbsp;extends&nbsp;Enum&lt;T&gt;&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">valueOf</span>(Class&lt;T&gt; arg0, String arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Comparable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Comparable-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.Comparable
-
-<div id="inherited-methods-java.lang.Comparable">
-  <div id="inherited-methods-java.lang.Comparable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Comparable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(T arg0)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Enum Values</h2>
-
-
-
-
-<A NAME="BOLD"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>
-      </span>
-        BOLD
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="DASHED"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>
-      </span>
-        DASHED
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="DOTTED"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>
-      </span>
-        DOTTED
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="INVISIBLE"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>
-      </span>
-        INVISIBLE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="SOLID"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>
-      </span>
-        SOLID
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="valueOf(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>
-      </span>
-      <span class="sympad">valueOf</span>
-      <span class="normal">(String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="values()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle[]</a>
-      </span>
-      <span class="sympad">values</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/GraphvizEdge.html b/javadoc/com/google/inject/grapher/graphviz/GraphvizEdge.html
deleted file mode 100755
index e414d3a..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/GraphvizEdge.html
+++ /dev/null
@@ -1,1575 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  GraphvizEdge
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>GraphvizEdge</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.GraphvizEdge</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Data object to encapsulate the attributes of Graphviz edges that we're
- interested in drawing.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#GraphvizEdge(java.lang.String, java.lang.String)">GraphvizEdge</a></span>(String tailNodeId, String headNodeId)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#getArrowHead()">getArrowHead</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#getArrowTail()">getArrowTail</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#getHeadCompassPoint()">getHeadCompassPoint</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#getHeadNodeId()">getHeadNodeId</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#getHeadPortId()">getHeadPortId</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#getStyle()">getStyle</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#getTailCompassPoint()">getTailCompassPoint</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#getTailNodeId()">getTailNodeId</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#getTailPortId()">getTailPortId</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#setArrowHead(java.util.List<com.google.inject.grapher.graphviz.ArrowType>)">setArrowHead</a></span>(List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt; arrowHead)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#setArrowTail(java.util.List<com.google.inject.grapher.graphviz.ArrowType>)">setArrowTail</a></span>(List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt; arrowTail)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#setHeadCompassPoint(com.google.inject.grapher.graphviz.CompassPoint)">setHeadCompassPoint</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a> headCompassPoint)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#setHeadPortId(java.lang.String)">setHeadPortId</a></span>(String headPortId)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#setStyle(com.google.inject.grapher.graphviz.EdgeStyle)">setStyle</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a> style)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#setTailCompassPoint(com.google.inject.grapher.graphviz.CompassPoint)">setTailCompassPoint</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a> tailCompassPoint)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#setTailPortId(java.lang.String)">setTailPortId</a></span>(String tailPortId)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="GraphvizEdge(java.lang.String, java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">GraphvizEdge</span>
-      <span class="normal">(String tailNodeId, String headNodeId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getArrowHead()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt;
-      </span>
-      <span class="sympad">getArrowHead</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getArrowTail()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt;
-      </span>
-      <span class="sympad">getArrowTail</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getHeadCompassPoint()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-      <span class="sympad">getHeadCompassPoint</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getHeadNodeId()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getHeadNodeId</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getHeadPortId()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getHeadPortId</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getStyle()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>
-      </span>
-      <span class="sympad">getStyle</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTailCompassPoint()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-      <span class="sympad">getTailCompassPoint</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTailNodeId()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getTailNodeId</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTailPortId()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getTailPortId</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setArrowHead(java.util.List<com.google.inject.grapher.graphviz.ArrowType>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setArrowHead</span>
-      <span class="normal">(List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt; arrowHead)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setArrowTail(java.util.List<com.google.inject.grapher.graphviz.ArrowType>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setArrowTail</span>
-      <span class="normal">(List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt; arrowTail)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setHeadCompassPoint(com.google.inject.grapher.graphviz.CompassPoint)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setHeadCompassPoint</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a> headCompassPoint)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setHeadPortId(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setHeadPortId</span>
-      <span class="normal">(String headPortId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setStyle(com.google.inject.grapher.graphviz.EdgeStyle)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setStyle</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a> style)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setTailCompassPoint(com.google.inject.grapher.graphviz.CompassPoint)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setTailCompassPoint</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a> tailCompassPoint)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setTailPortId(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setTailPortId</span>
-      <span class="normal">(String tailPortId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/GraphvizModule.html b/javadoc/com/google/inject/grapher/graphviz/GraphvizModule.html
deleted file mode 100755
index bbf68bd..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/GraphvizModule.html
+++ /dev/null
@@ -1,1335 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  GraphvizModule
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>GraphvizModule</h1>
-
-
-
-  
-  
-  
-
-  
-    extends <a href="../../../../../com/google/inject/AbstractModule.html">AbstractModule</a><br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell"><a href="../../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a></td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.GraphvizModule</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Module that provides <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></code> as the <code><a href="../../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code> and
- binds the other Graphviz factories.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html#GraphvizModule()">GraphvizModule</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.AbstractModule" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.AbstractModule-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  <a href="../../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a>
-
-<div id="inherited-methods-com.google.inject.AbstractModule">
-  <div id="inherited-methods-com.google.inject.AbstractModule-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.AbstractModule-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.Key<T>)">bind</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.TypeLiteral<T>)">bind</a></span>(<a href="../../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bind(java.lang.Class<T>)">bind</a></span>(Class&lt;T&gt; clazz)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bindConstant()">bindConstant</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener</a></span>(<a href="../../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation, <a href="../../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#binder()">binder</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets direct access to the underlying <code>Binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../../com/google/inject/Binder.html">Binder</a> builder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes</a></span>(<a href="../../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#currentStage()">currentStage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#install(com.google.inject.Module)">install</a></span>(<a href="../../../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#requestInjection(java.lang.Object)">requestInjection</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection</a></span>(Class...&lt;?&gt; types)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#requireBinding(com.google.inject.Key<?>)">requireBinding</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>key</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#requireBinding(java.lang.Class<?>)">requireBinding</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>type</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Module" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Module-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/Module.html">com.google.inject.Module</a>
-
-<div id="inherited-methods-com.google.inject.Module">
-  <div id="inherited-methods-com.google.inject.Module-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Module-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/Module.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="GraphvizModule()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">GraphvizModule</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="configure()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">configure</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Configures a <code><a href="../../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/GraphvizNode.html b/javadoc/com/google/inject/grapher/graphviz/GraphvizNode.html
deleted file mode 100755
index 717b350..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/GraphvizNode.html
+++ /dev/null
@@ -1,1526 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  GraphvizNode
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>GraphvizNode</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.GraphvizNode</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Data object to encapsulate the attributes of Graphviz nodes that we're
- interested in drawing.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#GraphvizNode(java.lang.String)">GraphvizNode</a></span>(String nodeId)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#addField(java.lang.String, java.lang.String)">addField</a></span>(String portId, String title)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#addSubtitle(int, java.lang.String)">addSubtitle</a></span>(int position, String subtitle)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Map&lt;String,&nbsp;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#getFields()">getFields</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#getHeaderBackgroundColor()">getHeaderBackgroundColor</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#getHeaderTextColor()">getHeaderTextColor</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#getNodeId()">getNodeId</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#getShape()">getShape</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#getStyle()">getStyle</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            List&lt;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#getSubtitles()">getSubtitles</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#getTitle()">getTitle</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#setHeaderBackgroundColor(java.lang.String)">setHeaderBackgroundColor</a></span>(String headerBackgroundColor)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#setHeaderTextColor(java.lang.String)">setHeaderTextColor</a></span>(String headerTextColor)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#setShape(com.google.inject.grapher.graphviz.NodeShape)">setShape</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a> shape)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#setStyle(com.google.inject.grapher.graphviz.NodeStyle)">setStyle</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a> style)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#setTitle(java.lang.String)">setTitle</a></span>(String title)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="GraphvizNode(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">GraphvizNode</span>
-      <span class="normal">(String nodeId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="addField(java.lang.String, java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">addField</span>
-      <span class="normal">(String portId, String title)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="addSubtitle(int, java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">addSubtitle</span>
-      <span class="normal">(int position, String subtitle)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getFields()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Map&lt;String,&nbsp;String&gt;
-      </span>
-      <span class="sympad">getFields</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getHeaderBackgroundColor()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getHeaderBackgroundColor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getHeaderTextColor()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getHeaderTextColor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getNodeId()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getNodeId</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getShape()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a>
-      </span>
-      <span class="sympad">getShape</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getStyle()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-      <span class="sympad">getStyle</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSubtitles()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        List&lt;String&gt;
-      </span>
-      <span class="sympad">getSubtitles</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTitle()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getTitle</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setHeaderBackgroundColor(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setHeaderBackgroundColor</span>
-      <span class="normal">(String headerBackgroundColor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setHeaderTextColor(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setHeaderTextColor</span>
-      <span class="normal">(String headerTextColor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setShape(com.google.inject.grapher.graphviz.NodeShape)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setShape</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a> shape)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setStyle(com.google.inject.grapher.graphviz.NodeStyle)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setStyle</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a> style)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setTitle(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setTitle</span>
-      <span class="normal">(String title)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/GraphvizRenderer.html b/javadoc/com/google/inject/grapher/graphviz/GraphvizRenderer.html
deleted file mode 100755
index 6f55bc0..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/GraphvizRenderer.html
+++ /dev/null
@@ -1,1812 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  GraphvizRenderer
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>GraphvizRenderer</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt; 
-      
-        <a href="../../../../../com/google/inject/grapher/Renderer.html">Renderer</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.GraphvizRenderer</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p><code><a href="../../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code> implementation that writes out a Graphviz DOT file of the
- graph. Bound in <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></code>.
- <p>
- Specify the PrintWriter to output to with
- <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#setOut(java.io.PrintWriter)">setOut(PrintWriter)</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#GraphvizRenderer()">GraphvizRenderer</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#addEdge(com.google.inject.grapher.graphviz.GraphvizEdge)">addEdge</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#addNode(com.google.inject.grapher.graphviz.GraphvizNode)">addNode</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#newAlias(java.lang.String, java.lang.String)">newAlias</a></span>(String fromId, String toId)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#render()">render</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#setOut(java.io.PrintWriter)">setOut</a></span>(PrintWriter out)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#setRankdir(java.lang.String)">setRankdir</a></span>(String rankdir)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#finish()">finish</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#getArrowString(java.util.List<com.google.inject.grapher.graphviz.ArrowType>)">getArrowString</a></span>(List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt; arrows)</nobr>
-        
-        <div class="jd-descrdiv">Turns a List of <code><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></code>s into a String that
- represents combining them.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Map&lt;String,&nbsp;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#getEdgeAttributes(com.google.inject.grapher.graphviz.GraphvizEdge)">getEdgeAttributes</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#getEdgeEndPoint(java.lang.String, java.lang.String, com.google.inject.grapher.graphviz.CompassPoint)">getEdgeEndPoint</a></span>(String nodeId, String portId, <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a> compassPoint)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Map&lt;String,&nbsp;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#getGraphAttributes()">getGraphAttributes</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Map&lt;String,&nbsp;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#getNodeAttributes(com.google.inject.grapher.graphviz.GraphvizNode)">getNodeAttributes</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#getNodeLabel(com.google.inject.grapher.graphviz.GraphvizNode)">getNodeLabel</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</nobr>
-        
-        <div class="jd-descrdiv">Creates the "label" for a node.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#htmlEscape(java.lang.String)">htmlEscape</a></span>(String str)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#renderEdge(com.google.inject.grapher.graphviz.GraphvizEdge)">renderEdge</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#renderNode(com.google.inject.grapher.graphviz.GraphvizNode)">renderNode</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#resolveAlias(java.lang.String)">resolveAlias</a></span>(String id)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#start()">start</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.NodeAliasFactory" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.NodeAliasFactory-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/NodeAliasFactory.html">com.google.inject.grapher.NodeAliasFactory</a>
-
-<div id="inherited-methods-com.google.inject.grapher.NodeAliasFactory">
-  <div id="inherited-methods-com.google.inject.grapher.NodeAliasFactory-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.NodeAliasFactory-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/NodeAliasFactory.html#newAlias(K, K)">newAlias</a></span>(K fromId, K toId)</nobr>
-        
-        <div class="jd-descrdiv">Makes edges that would point to <code>fromId</code> point to
- <code>toId</code> instead.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.Renderer" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.Renderer-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/Renderer.html">com.google.inject.grapher.Renderer</a>
-
-<div id="inherited-methods-com.google.inject.grapher.Renderer">
-  <div id="inherited-methods-com.google.inject.grapher.Renderer-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.Renderer-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/Renderer.html#render()">render</a></span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="GraphvizRenderer()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">GraphvizRenderer</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="addEdge(com.google.inject.grapher.graphviz.GraphvizEdge)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">addEdge</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="addNode(com.google.inject.grapher.graphviz.GraphvizNode)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">addNode</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newAlias(java.lang.String, java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">newAlias</span>
-      <span class="normal">(String fromId, String toId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="render()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">render</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setOut(java.io.PrintWriter)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a>
-      </span>
-      <span class="sympad">setOut</span>
-      <span class="normal">(PrintWriter out)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setRankdir(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a>
-      </span>
-      <span class="sympad">setRankdir</span>
-      <span class="normal">(String rankdir)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="finish()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">finish</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getArrowString(java.util.List<com.google.inject.grapher.graphviz.ArrowType>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getArrowString</span>
-      <span class="normal">(List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt; arrows)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Turns a List of <code><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></code>s into a String that
- represents combining them. With Graphviz, that just means concatenating
- them.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getEdgeAttributes(com.google.inject.grapher.graphviz.GraphvizEdge)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        Map&lt;String,&nbsp;String&gt;
-      </span>
-      <span class="sympad">getEdgeAttributes</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getEdgeEndPoint(java.lang.String, java.lang.String, com.google.inject.grapher.graphviz.CompassPoint)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getEdgeEndPoint</span>
-      <span class="normal">(String nodeId, String portId, <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a> compassPoint)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getGraphAttributes()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        Map&lt;String,&nbsp;String&gt;
-      </span>
-      <span class="sympad">getGraphAttributes</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getNodeAttributes(com.google.inject.grapher.graphviz.GraphvizNode)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        Map&lt;String,&nbsp;String&gt;
-      </span>
-      <span class="sympad">getNodeAttributes</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getNodeLabel(com.google.inject.grapher.graphviz.GraphvizNode)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getNodeLabel</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates the "label" for a node. This is a string of HTML that defines a
- table with a heading at the top and (in the case of
- <code><a href="../../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code>s) rows for each of the member fields.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="htmlEscape(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">htmlEscape</span>
-      <span class="normal">(String str)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="renderEdge(com.google.inject.grapher.graphviz.GraphvizEdge)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">renderEdge</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="renderNode(com.google.inject.grapher.graphviz.GraphvizNode)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">renderNode</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="resolveAlias(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">resolveAlias</span>
-      <span class="normal">(String id)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="start()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">start</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html b/javadoc/com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html
deleted file mode 100755
index c0034b9..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html
+++ /dev/null
@@ -1,1164 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  ImplementationNodeFactory.GraphvizNodeAdaptor
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-  <a href="#lfields">Fields</a>
-  
-
-
-
-  &#124; <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    protected
-     
-     
-    
-    class
-<h1>ImplementationNodeFactory.GraphvizNodeAdaptor</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.ImplementationNodeFactory.GraphvizNodeAdaptor</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.
-</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-    
-      <tr class="alt-color api apilevel-Guice_3.0" >
-          <td class="jd-typecol"><nobr>
-          protected
-          
-          final
-          <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></nobr></td>
-          <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html#node">node</a></td>
-          <td class="jd-descrcol" width="100%"></td>
-      </tr>
-      
-    
-
-</table>
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html#ImplementationNodeFactory.GraphvizNodeAdaptor(com.google.inject.grapher.graphviz.GraphvizNode)">ImplementationNodeFactory.GraphvizNodeAdaptor</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html#addMember(java.lang.reflect.Member)">addMember</a></span>(Member member)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html#setClassKey(com.google.inject.Key<?>)">setClassKey</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Sets the <code><a href="../../../../../com/google/inject/Key.html">Key</a></code> that this node is for.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html#setInstance(java.lang.Object)">setInstance</a></span>(Object instance)</nobr>
-        
-        <div class="jd-descrdiv">Sets the Object that's the already-created instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html#setSource(java.lang.Object)">setSource</a></span>(Object source)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.ImplementationNode" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.ImplementationNode-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/ImplementationNode.html">com.google.inject.grapher.ImplementationNode</a>
-
-<div id="inherited-methods-com.google.inject.grapher.ImplementationNode">
-  <div id="inherited-methods-com.google.inject.grapher.ImplementationNode-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.ImplementationNode-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/ImplementationNode.html#addMember(java.lang.reflect.Member)">addMember</a></span>(Member member)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/ImplementationNode.html#setClassKey(com.google.inject.Key<?>)">setClassKey</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Sets the <code><a href="../../../../../com/google/inject/Key.html">Key</a></code> that this node is for.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/ImplementationNode.html#setInstance(java.lang.Object)">setInstance</a></span>(Object instance)</nobr>
-        
-        <div class="jd-descrdiv">Sets the Object that's the already-created instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/ImplementationNode.html#setSource(java.lang.Object)">setSource</a></span>(Object source)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="node"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a>
-      </span>
-        node
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="ImplementationNodeFactory.GraphvizNodeAdaptor(com.google.inject.grapher.graphviz.GraphvizNode)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ImplementationNodeFactory.GraphvizNodeAdaptor</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="addMember(java.lang.reflect.Member)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">addMember</span>
-      <span class="normal">(Member member)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setClassKey(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setClassKey</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Sets the <code><a href="../../../../../com/google/inject/Key.html">Key</a></code> that this node is for. Used when the node is
- representing a class that Guice will instantiate.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setInstance(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setInstance</span>
-      <span class="normal">(Object instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Sets the Object that's the already-created instance. Used when
- this node is represeting the instance instead of a class.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setSource(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setSource</span>
-      <span class="normal">(Object source)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/ImplementationNodeFactory.html b/javadoc/com/google/inject/grapher/graphviz/ImplementationNodeFactory.html
deleted file mode 100755
index 8bd164e..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/ImplementationNodeFactory.html
+++ /dev/null
@@ -1,986 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  ImplementationNodeFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>ImplementationNodeFactory</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.ImplementationNodeFactory</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Graphviz-specific implementation of <code><a href="../../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a></code>. Uses
- a <code><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></code> to delegate to a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_3.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        class</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></td>
-      <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html#ImplementationNodeFactory(com.google.inject.grapher.graphviz.GraphvizRenderer, com.google.inject.grapher.NameFactory, com.google.inject.grapher.graphviz.PortIdFactory)">ImplementationNodeFactory</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a> renderer, <a href="../../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a> nameFactory, <a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a> portIdFactory)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html#newImplementationNode(java.lang.String)">newImplementationNode</a></span>(String nodeId)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html#newAdaptor(com.google.inject.grapher.graphviz.GraphvizNode)">newAdaptor</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.ImplementationNode.Factory" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.ImplementationNode.Factory-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/ImplementationNode.Factory.html">com.google.inject.grapher.ImplementationNode.Factory</a>
-
-<div id="inherited-methods-com.google.inject.grapher.ImplementationNode.Factory">
-  <div id="inherited-methods-com.google.inject.grapher.ImplementationNode.Factory-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.ImplementationNode.Factory-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/ImplementationNode.Factory.html#newImplementationNode(K)">newImplementationNode</a></span>(K nodeId)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> and adds it to the graph.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="ImplementationNodeFactory(com.google.inject.grapher.graphviz.GraphvizRenderer, com.google.inject.grapher.NameFactory, com.google.inject.grapher.graphviz.PortIdFactory)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ImplementationNodeFactory</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a> renderer, <a href="../../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a> nameFactory, <a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a> portIdFactory)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="newImplementationNode(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;String&gt;
-      </span>
-      <span class="sympad">newImplementationNode</span>
-      <span class="normal">(String nodeId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="newAdaptor(com.google.inject.grapher.graphviz.GraphvizNode)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a>
-      </span>
-      <span class="sympad">newAdaptor</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html b/javadoc/com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html
deleted file mode 100755
index 2992f29..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html
+++ /dev/null
@@ -1,1022 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  InterfaceNodeFactory.GraphvizNodeAdaptor
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-  <a href="#lfields">Fields</a>
-  
-
-
-
-  &#124; <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    protected
-     
-     
-    
-    class
-<h1>InterfaceNodeFactory.GraphvizNodeAdaptor</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.InterfaceNodeFactory.GraphvizNodeAdaptor</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.
-</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-    
-      <tr class="alt-color api apilevel-Guice_3.0" >
-          <td class="jd-typecol"><nobr>
-          protected
-          
-          final
-          <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></nobr></td>
-          <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html#node">node</a></td>
-          <td class="jd-descrcol" width="100%"></td>
-      </tr>
-      
-    
-
-</table>
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html#InterfaceNodeFactory.GraphvizNodeAdaptor(com.google.inject.grapher.graphviz.GraphvizNode)">InterfaceNodeFactory.GraphvizNodeAdaptor</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html#setKey(com.google.inject.Key<?>)">setKey</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html#setSource(java.lang.Object)">setSource</a></span>(Object source)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.InterfaceNode" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.InterfaceNode-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/InterfaceNode.html">com.google.inject.grapher.InterfaceNode</a>
-
-<div id="inherited-methods-com.google.inject.grapher.InterfaceNode">
-  <div id="inherited-methods-com.google.inject.grapher.InterfaceNode-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.InterfaceNode-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/InterfaceNode.html#setKey(com.google.inject.Key<?>)">setKey</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/InterfaceNode.html#setSource(java.lang.Object)">setSource</a></span>(Object source)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="node"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a>
-      </span>
-        node
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="InterfaceNodeFactory.GraphvizNodeAdaptor(com.google.inject.grapher.graphviz.GraphvizNode)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">InterfaceNodeFactory.GraphvizNodeAdaptor</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="setKey(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setKey</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setSource(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setSource</span>
-      <span class="normal">(Object source)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/InterfaceNodeFactory.html b/javadoc/com/google/inject/grapher/graphviz/InterfaceNodeFactory.html
deleted file mode 100755
index cf0217b..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/InterfaceNodeFactory.html
+++ /dev/null
@@ -1,920 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  InterfaceNodeFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>InterfaceNodeFactory</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.InterfaceNodeFactory</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Graphviz-specific implementation of <code><a href="../../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a></code>. Uses
- a GraphvizEdgeAdaptor to delegate to a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_3.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        class</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></td>
-      <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html#InterfaceNodeFactory(com.google.inject.grapher.graphviz.GraphvizRenderer, com.google.inject.grapher.NameFactory)">InterfaceNodeFactory</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a> renderer, <a href="../../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a> nameFactory)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html#newInterfaceNode(java.lang.String)">newInterfaceNode</a></span>(String nodeId)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.InterfaceNode.Factory" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.InterfaceNode.Factory-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/InterfaceNode.Factory.html">com.google.inject.grapher.InterfaceNode.Factory</a>
-
-<div id="inherited-methods-com.google.inject.grapher.InterfaceNode.Factory">
-  <div id="inherited-methods-com.google.inject.grapher.InterfaceNode.Factory-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.InterfaceNode.Factory-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/InterfaceNode.Factory.html#newInterfaceNode(K)">newInterfaceNode</a></span>(K nodeId)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> and adds it to the graph.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="InterfaceNodeFactory(com.google.inject.grapher.graphviz.GraphvizRenderer, com.google.inject.grapher.NameFactory)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">InterfaceNodeFactory</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a> renderer, <a href="../../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a> nameFactory)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="newInterfaceNode(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;String&gt;
-      </span>
-      <span class="sympad">newInterfaceNode</span>
-      <span class="normal">(String nodeId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/NodeShape.html b/javadoc/com/google/inject/grapher/graphviz/NodeShape.html
deleted file mode 100755
index b8c5aee..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/NodeShape.html
+++ /dev/null
@@ -1,1283 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  NodeShape
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-  <a href="#enumconstants">Enums</a>
-  
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    enum
-<h1>NodeShape</h1>
-
-
-
-  
-  
-  
-
-  
-    extends Enum&lt;E&nbsp;extends&nbsp;Enum&lt;E&gt;&gt;<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Enum&lt;E&nbsp;extends&nbsp;java.lang.Enum&lt;E&gt;&gt;</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.NodeShape</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Enum for the shapes that are most interesting for Guice graphing.
- <p>
- See: http://www.graphviz.org/doc/info/shapes.html</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a>&nbsp;</td>
-        <td class="jd-linkcol">BOX&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a>&nbsp;</td>
-        <td class="jd-linkcol">ELLIPSE&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a>&nbsp;</td>
-        <td class="jd-linkcol">NONE&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html#valueOf(java.lang.String)">valueOf</a></span>(String name)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape[]</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html#values()">values</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Enum" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Enum-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Enum
-
-<div id="inherited-methods-java.lang.Enum">
-  <div id="inherited-methods-java.lang.Enum-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Enum-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(E arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;E&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getDeclaringClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">name</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">ordinal</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&nbsp;extends&nbsp;Enum&lt;T&gt;&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">valueOf</span>(Class&lt;T&gt; arg0, String arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Comparable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Comparable-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.Comparable
-
-<div id="inherited-methods-java.lang.Comparable">
-  <div id="inherited-methods-java.lang.Comparable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Comparable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(T arg0)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Enum Values</h2>
-
-
-
-
-<A NAME="BOX"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a>
-      </span>
-        BOX
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="ELLIPSE"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a>
-      </span>
-        ELLIPSE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="NONE"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a>
-      </span>
-        NONE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="valueOf(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a>
-      </span>
-      <span class="sympad">valueOf</span>
-      <span class="normal">(String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="values()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape[]</a>
-      </span>
-      <span class="sympad">values</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/NodeStyle.html b/javadoc/com/google/inject/grapher/graphviz/NodeStyle.html
deleted file mode 100755
index b0aa3d4..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/NodeStyle.html
+++ /dev/null
@@ -1,1478 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  NodeStyle
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-  <a href="#enumconstants">Enums</a>
-  
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    enum
-<h1>NodeStyle</h1>
-
-
-
-  
-  
-  
-
-  
-    extends Enum&lt;E&nbsp;extends&nbsp;Enum&lt;E&gt;&gt;<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Enum&lt;E&nbsp;extends&nbsp;java.lang.Enum&lt;E&gt;&gt;</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.NodeStyle</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Styles for nodes. Similar to <code><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></code> but with a few more options.
- <p>
- See: http://www.graphviz.org/doc/info/attrs.html#k:style</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">BOLD&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">DASHED&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">DIAGONALS&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">DOTTED&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">FILLED&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">INVISIBLE&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">ROUNDED&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">SOLID&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html#valueOf(java.lang.String)">valueOf</a></span>(String name)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle[]</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html#values()">values</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Enum" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Enum-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Enum
-
-<div id="inherited-methods-java.lang.Enum">
-  <div id="inherited-methods-java.lang.Enum-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Enum-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(E arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;E&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getDeclaringClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">name</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">ordinal</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&nbsp;extends&nbsp;Enum&lt;T&gt;&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">valueOf</span>(Class&lt;T&gt; arg0, String arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Comparable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Comparable-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.Comparable
-
-<div id="inherited-methods-java.lang.Comparable">
-  <div id="inherited-methods-java.lang.Comparable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Comparable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(T arg0)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Enum Values</h2>
-
-
-
-
-<A NAME="BOLD"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-        BOLD
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="DASHED"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-        DASHED
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="DIAGONALS"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-        DIAGONALS
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="DOTTED"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-        DOTTED
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="FILLED"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-        FILLED
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="INVISIBLE"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-        INVISIBLE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="ROUNDED"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-        ROUNDED
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="SOLID"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-        SOLID
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="valueOf(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-      <span class="sympad">valueOf</span>
-      <span class="normal">(String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="values()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle[]</a>
-      </span>
-      <span class="sympad">values</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/PortIdFactory.html b/javadoc/com/google/inject/grapher/graphviz/PortIdFactory.html
deleted file mode 100755
index 865df19..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/PortIdFactory.html
+++ /dev/null
@@ -1,571 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  PortIdFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>PortIdFactory</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.PortIdFactory</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></td>
-              <td class="jd-descrcol" width="100%">Implementation of <code><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Interface for a service that returns Graphviz port IDs, used for naming the
- rows in ImplementationNode-displaying <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>s.
- Implemented by <code><a href="../../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html#getPortId(java.lang.reflect.Member)">getPortId</a></span>(Member member)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getPortId(java.lang.reflect.Member)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getPortId</span>
-      <span class="normal">(Member member)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/PortIdFactoryImpl.html b/javadoc/com/google/inject/grapher/graphviz/PortIdFactoryImpl.html
deleted file mode 100755
index 9062f93..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/PortIdFactoryImpl.html
+++ /dev/null
@@ -1,893 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  PortIdFactoryImpl
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>PortIdFactoryImpl</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.PortIdFactoryImpl</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Implementation of <code><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></code>. Bound in <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html#PortIdFactoryImpl()">PortIdFactoryImpl</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html#getPortId(java.lang.reflect.Member)">getPortId</a></span>(Member member)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.graphviz.PortIdFactory" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.graphviz.PortIdFactory-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">com.google.inject.grapher.graphviz.PortIdFactory</a>
-
-<div id="inherited-methods-com.google.inject.grapher.graphviz.PortIdFactory">
-  <div id="inherited-methods-com.google.inject.grapher.graphviz.PortIdFactory-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.graphviz.PortIdFactory-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html#getPortId(java.lang.reflect.Member)">getPortId</a></span>(Member member)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="PortIdFactoryImpl()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">PortIdFactoryImpl</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getPortId(java.lang.reflect.Member)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getPortId</span>
-      <span class="normal">(Member member)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/package-descr.html b/javadoc/com/google/inject/grapher/graphviz/package-descr.html
deleted file mode 100755
index 10f45a0..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/package-descr.html
+++ /dev/null
@@ -1,316 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  com.google.inject.grapher.graphviz Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.grapher.graphviz</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<div class="jd-descr">
-<p></p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/graphviz/package-summary.html b/javadoc/com/google/inject/grapher/graphviz/package-summary.html
deleted file mode 100755
index 07597f0..0000000
--- a/javadoc/com/google/inject/grapher/graphviz/package-summary.html
+++ /dev/null
@@ -1,440 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  com.google.inject.grapher.graphviz
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.grapher.graphviz</h1>
-  <div class="jd-nav">
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></td>
-              <td class="jd-descrcol" width="100%">Interface for a service that returns Graphviz port IDs, used for naming the
- rows in ImplementationNode-displaying <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>s.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></td>
-              <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="../../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></td>
-              <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></td>
-              <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="../../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></td>
-              <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></td>
-              <td class="jd-descrcol" width="100%">Data object to encapsulate the attributes of Graphviz edges that we're
- interested in drawing.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></td>
-              <td class="jd-descrcol" width="100%">Module that provides <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></code> as the <code><a href="../../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code> and
- binds the other Graphviz factories.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></td>
-              <td class="jd-descrcol" width="100%">Data object to encapsulate the attributes of Graphviz nodes that we're
- interested in drawing.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></td>
-              <td class="jd-descrcol" width="100%"><code><a href="../../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code> implementation that writes out a Graphviz DOT file of the
- graph.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></td>
-              <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="../../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></td>
-              <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></td>
-              <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="../../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></td>
-              <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></td>
-              <td class="jd-descrcol" width="100%">Implementation of <code><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Enums</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></td>
-              <td class="jd-descrcol" width="100%">Arrow symbols that are available from Graphviz.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></td>
-              <td class="jd-descrcol" width="100%">Enum for the "compass point" values used to control where edge
- end points appear on the graph.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></td>
-              <td class="jd-descrcol" width="100%">Styles for edges.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></td>
-              <td class="jd-descrcol" width="100%">Enum for the shapes that are most interesting for Guice graphing.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></td>
-              <td class="jd-descrcol" width="100%">Styles for nodes.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/package-descr.html b/javadoc/com/google/inject/grapher/package-descr.html
deleted file mode 100755
index dedc865..0000000
--- a/javadoc/com/google/inject/grapher/package-descr.html
+++ /dev/null
@@ -1,316 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.grapher Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.grapher</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<div class="jd-descr">
-<p></p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/grapher/package-summary.html b/javadoc/com/google/inject/grapher/package-summary.html
deleted file mode 100755
index f30060d..0000000
--- a/javadoc/com/google/inject/grapher/package-summary.html
+++ /dev/null
@@ -1,437 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.grapher
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.grapher</h1>
-  <div class="jd-nav">
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</td>
-              <td class="jd-descrcol" width="100%">Interface for an edge that connects an interface to the type or instance
- that is bound to implement it.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</td>
-              <td class="jd-descrcol" width="100%">Factory interface for <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code>s.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</td>
-              <td class="jd-descrcol" width="100%">Interface for an edge from a class or <code><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></code> to the
- interface node that will satisfy the dependency.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</td>
-              <td class="jd-descrcol" width="100%">Factory interface for <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>s.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</td>
-              <td class="jd-descrcol" width="100%">Node for classes and instances that have Dependencys and are
- bound to <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>s.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</td>
-              <td class="jd-descrcol" width="100%">Factory interface for <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code>s.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</td>
-              <td class="jd-descrcol" width="100%">Node for an interface class that has been bound to an implementation class
- or instance.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</td>
-              <td class="jd-descrcol" width="100%">Factory interface for <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>s.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></td>
-              <td class="jd-descrcol" width="100%">Interface for a service that provides nice Strings that we can
- display in the graph for the types that come up in Bindings.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</td>
-              <td class="jd-descrcol" width="100%">Factory for aliasing one node ID to another.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</td>
-              <td class="jd-descrcol" width="100%">Factory for abstract identifiers for elements on the graph.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></td>
-              <td class="jd-descrcol" width="100%">Interface for the service that renders the graph.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></td>
-              <td class="jd-descrcol" width="100%">Module for the common bindings for <code><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</td>
-              <td class="jd-descrcol" width="100%"><code><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> that adds nodes and edges to the graph based on
- the visited <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></td>
-              <td class="jd-descrcol" width="100%">Root class for graphing an <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></td>
-              <td class="jd-descrcol" width="100%">Reasonable implementation for <code><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></td>
-              <td class="jd-descrcol" width="100%">IdFactory implementation that for String node IDs.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></td>
-              <td class="jd-descrcol" width="100%"><code><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> that returns a Collection of the
- <code><a href="../../../../com/google/inject/Key.html">Key</a></code>s of each Binding's dependencies.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Enums</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></td>
-              <td class="jd-descrcol" width="100%">Classification for what kind of binding this edge represents.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/jndi/JndiIntegration.html b/javadoc/com/google/inject/jndi/JndiIntegration.html
deleted file mode 100755
index 09c2d2f..0000000
--- a/javadoc/com/google/inject/jndi/JndiIntegration.html
+++ /dev/null
@@ -1,754 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  JndiIntegration
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/jndi/JndiIntegration.html">JndiIntegration</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>JndiIntegration</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.jndi.JndiIntegration</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Integrates Guice with JNDI. Requires a binding to 
- javax.naming.Context.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/jndi/JndiIntegration.html#fromJndi(java.lang.Class<T>, java.lang.String)">fromJndi</a></span>(Class&lt;T&gt; type, String name)</nobr>
-        
-        <div class="jd-descrdiv">Creates a provider which looks up objects in JNDI using the given name.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="fromJndi(java.lang.Class<T>, java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">fromJndi</span>
-      <span class="normal">(Class&lt;T&gt; type, String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a provider which looks up objects in JNDI using the given name.
- Example usage:
-
- <pre>
- bind(DataSource.class).toProvider(fromJndi(DataSource.class, "java:..."));
- </pre>
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/jndi/package-descr.html b/javadoc/com/google/inject/jndi/package-descr.html
deleted file mode 100755
index 7b9a192..0000000
--- a/javadoc/com/google/inject/jndi/package-descr.html
+++ /dev/null
@@ -1,291 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.jndi Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/jndi/JndiIntegration.html">JndiIntegration</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.jndi</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<div class="jd-descr">
-<p>JNDI integration; this extension requires <code>guice-jndi-3.0.jar</code>.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/jndi/package-summary.html b/javadoc/com/google/inject/jndi/package-summary.html
deleted file mode 100755
index 9282064..0000000
--- a/javadoc/com/google/inject/jndi/package-summary.html
+++ /dev/null
@@ -1,327 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.jndi
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/jndi/JndiIntegration.html">JndiIntegration</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.jndi</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-
-
-  <div class="jd-descr">
-  <p>JNDI integration; this extension requires <code>guice-jndi-3.0.jar</code>.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/jndi/JndiIntegration.html">JndiIntegration</a></td>
-              <td class="jd-descrcol" width="100%">Integrates Guice with JNDI.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/matcher/AbstractMatcher.html b/javadoc/com/google/inject/matcher/AbstractMatcher.html
deleted file mode 100755
index 57fb022..0000000
--- a/javadoc/com/google/inject/matcher/AbstractMatcher.html
+++ /dev/null
@@ -1,972 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  AbstractMatcher
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matchers.html">Matchers</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    class
-<h1>AbstractMatcher</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.matcher.AbstractMatcher&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Implements <code>and()</code> and <code>or()</code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html#AbstractMatcher()">AbstractMatcher</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html#and(com.google.inject.matcher.Matcher<? super T>)">and</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new matcher which returns <code>true</code> if both this and the
- given matcher return <code>true</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html#or(com.google.inject.matcher.Matcher<? super T>)">or</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new matcher which returns <code>true</code> if either this or the
- given matcher return <code>true</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.matcher.Matcher" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.matcher.Matcher-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/matcher/Matcher.html">com.google.inject.matcher.Matcher</a>
-
-<div id="inherited-methods-com.google.inject.matcher.Matcher">
-  <div id="inherited-methods-com.google.inject.matcher.Matcher-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.matcher.Matcher-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matcher.html#and(com.google.inject.matcher.Matcher<? super T>)">and</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new matcher which returns <code>true</code> if both this and the
- given matcher return <code>true</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matcher.html#matches(T)">matches</a></span>(T t)</nobr>
-        
-        <div class="jd-descrdiv">Returns <code>true</code> if this matches <code>t</code>, <code>false</code> otherwise.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matcher.html#or(com.google.inject.matcher.Matcher<? super T>)">or</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new matcher which returns <code>true</code> if either this or the
- given matcher return <code>true</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="AbstractMatcher()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">AbstractMatcher</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="and(com.google.inject.matcher.Matcher<? super T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;
-      </span>
-      <span class="sympad">and</span>
-      <span class="normal">(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new matcher which returns <code>true</code> if both this and the
- given matcher return <code>true</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="or(com.google.inject.matcher.Matcher<? super T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;
-      </span>
-      <span class="sympad">or</span>
-      <span class="normal">(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new matcher which returns <code>true</code> if either this or the
- given matcher return <code>true</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/matcher/Matcher.html b/javadoc/com/google/inject/matcher/Matcher.html
deleted file mode 100755
index 717ec3a..0000000
--- a/javadoc/com/google/inject/matcher/Matcher.html
+++ /dev/null
@@ -1,660 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Matcher
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matchers.html">Matchers</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>Matcher</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.matcher.Matcher&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>&lt;T&gt;
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">Implements <code>and()</code> and <code>or()</code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Returns <code>true</code> or <code>false</code> for a given input.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matcher.html#and(com.google.inject.matcher.Matcher<? super T>)">and</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new matcher which returns <code>true</code> if both this and the
- given matcher return <code>true</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matcher.html#matches(T)">matches</a></span>(T t)</nobr>
-        
-        <div class="jd-descrdiv">Returns <code>true</code> if this matches <code>t</code>, <code>false</code> otherwise.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matcher.html#or(com.google.inject.matcher.Matcher<? super T>)">or</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new matcher which returns <code>true</code> if either this or the
- given matcher return <code>true</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="and(com.google.inject.matcher.Matcher<? super T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;
-      </span>
-      <span class="sympad">and</span>
-      <span class="normal">(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new matcher which returns <code>true</code> if both this and the
- given matcher return <code>true</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="matches(T)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        boolean
-      </span>
-      <span class="sympad">matches</span>
-      <span class="normal">(T t)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns <code>true</code> if this matches <code>t</code>, <code>false</code> otherwise.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="or(com.google.inject.matcher.Matcher<? super T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;
-      </span>
-      <span class="sympad">or</span>
-      <span class="normal">(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new matcher which returns <code>true</code> if either this or the
- given matcher return <code>true</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/matcher/Matchers.html b/javadoc/com/google/inject/matcher/Matchers.html
deleted file mode 100755
index e6dcd36..0000000
--- a/javadoc/com/google/inject/matcher/Matchers.html
+++ /dev/null
@@ -1,1229 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Matchers
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matchers.html">Matchers</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>Matchers</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.matcher.Matchers</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Matcher implementations. Supports matching classes and methods.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;AnnotatedElement&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)">annotatedWith</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a matcher which matches elements (methods, classes, etc.)
- with a given annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;AnnotatedElement&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#annotatedWith(java.lang.annotation.Annotation)">annotatedWith</a></span>(Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">Returns a matcher which matches elements (methods, classes, etc.)
- with a given annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Object&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#any()">any</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns a matcher which matches any input.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Object&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#identicalTo(java.lang.Object)">identicalTo</a></span>(Object value)</nobr>
-        
-        <div class="jd-descrdiv">Returns a matcher which matches only the given object.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Class&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#inPackage(java.lang.Package)">inPackage</a></span>(Package targetPackage)</nobr>
-        
-        <div class="jd-descrdiv">Returns a matcher which matches classes in the given package.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Class&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#inSubpackage(java.lang.String)">inSubpackage</a></span>(String targetPackageName)</nobr>
-        
-        <div class="jd-descrdiv">Returns a matcher which matches classes in the given package and its subpackages.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#not(com.google.inject.matcher.Matcher<? super T>)">not</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; p)</nobr>
-        
-        <div class="jd-descrdiv">Inverts the given matcher.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Object&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#only(java.lang.Object)">only</a></span>(Object value)</nobr>
-        
-        <div class="jd-descrdiv">Returns a matcher which matches objects equal to the given object.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Method&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#returns(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>)">returns</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; returnType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a matcher which matches methods with matching return types.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Class&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#subclassesOf(java.lang.Class<?>)">subclassesOf</a></span>(Class&lt;?&gt; superclass)</nobr>
-        
-        <div class="jd-descrdiv">Returns a matcher which matches subclasses of the given type (as well as
- the given type).</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;AnnotatedElement&gt;
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a matcher which matches elements (methods, classes, etc.)
- with a given annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="annotatedWith(java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;AnnotatedElement&gt;
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a matcher which matches elements (methods, classes, etc.)
- with a given annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="any()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Object&gt;
-      </span>
-      <span class="sympad">any</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a matcher which matches any input.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="identicalTo(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Object&gt;
-      </span>
-      <span class="sympad">identicalTo</span>
-      <span class="normal">(Object value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a matcher which matches only the given object.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="inPackage(java.lang.Package)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Class&gt;
-      </span>
-      <span class="sympad">inPackage</span>
-      <span class="normal">(Package targetPackage)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a matcher which matches classes in the given package. Packages are specific to their
- classloader, so classes with the same package name may not have the same package at runtime.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="inSubpackage(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Class&gt;
-      </span>
-      <span class="sympad">inSubpackage</span>
-      <span class="normal">(String targetPackageName)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a matcher which matches classes in the given package and its subpackages. Unlike
- <code><a href="../../../../com/google/inject/matcher/Matchers.html#inPackage(java.lang.Package)">inPackage()</a></code>, this matches classes from any classloader.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="not(com.google.inject.matcher.Matcher<? super T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;
-      </span>
-      <span class="sympad">not</span>
-      <span class="normal">(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; p)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Inverts the given matcher.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="only(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Object&gt;
-      </span>
-      <span class="sympad">only</span>
-      <span class="normal">(Object value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a matcher which matches objects equal to the given object.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="returns(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Method&gt;
-      </span>
-      <span class="sympad">returns</span>
-      <span class="normal">(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; returnType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a matcher which matches methods with matching return types.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="subclassesOf(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Class&gt;
-      </span>
-      <span class="sympad">subclassesOf</span>
-      <span class="normal">(Class&lt;?&gt; superclass)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a matcher which matches subclasses of the given type (as well as
- the given type).
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/matcher/package-descr.html b/javadoc/com/google/inject/matcher/package-descr.html
deleted file mode 100755
index ce35919..0000000
--- a/javadoc/com/google/inject/matcher/package-descr.html
+++ /dev/null
@@ -1,298 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.matcher Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matchers.html">Matchers</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.matcher</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<div class="jd-descr">
-<p>Used for matching things. Primarily used to pick out methods to which to
- apply interceptors.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/matcher/package-summary.html b/javadoc/com/google/inject/matcher/package-summary.html
deleted file mode 100755
index 5f3e730..0000000
--- a/javadoc/com/google/inject/matcher/package-summary.html
+++ /dev/null
@@ -1,348 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.matcher
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matchers.html">Matchers</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.matcher</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-
-
-  <div class="jd-descr">
-  <p>Used for matching things.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">Returns <code>true</code> or <code>false</code> for a given input.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">Implements <code>and()</code> and <code>or()</code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/matcher/Matchers.html">Matchers</a></td>
-              <td class="jd-descrcol" width="100%">Matcher implementations.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/multibindings/MapBinder.html b/javadoc/com/google/inject/multibindings/MapBinder.html
deleted file mode 100755
index c2d4395..0000000
--- a/javadoc/com/google/inject/multibindings/MapBinder.html
+++ /dev/null
@@ -1,1213 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  MapBinder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    class
-<h1>MapBinder</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.multibindings.MapBinder&lt;K,&nbsp;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>An API to bind multiple map entries separately, only to later inject them as
- a complete map. MapBinder is intended for use in your application's module:
- <pre><code>
- public class SnacksModule extends AbstractModule {
-   protected void configure() {
-     MapBinder&lt;String, Snack&gt; mapbinder
-         = MapBinder.newMapBinder(binder(), String.class, Snack.class);
-     mapbinder.addBinding("twix").toInstance(new Twix());
-     mapbinder.addBinding("snickers").toProvider(SnickersProvider.class);
-     mapbinder.addBinding("skittles").to(Skittles.class);
-   }
- }</code></pre>
-
- <p>With this binding, a Map<code>&lt;String, Snack&gt;</code> can now be
- injected:
- <pre><code>
- class SnackMachine {
-   @Inject
-   public SnackMachine(Map&lt;String, Snack&gt; snacks) { ... }
- }</code></pre>
-
- <p>In addition to binding <code>Map&lt;K, V&gt;</code>, a mapbinder will also bind
- <code>Map&lt;K, Provider&lt;V&gt;&gt;</code> for lazy value provision:
- <pre><code>
- class SnackMachine {
-   @Inject
-   public SnackMachine(Map&lt;String, Provider&lt;Snack&gt;&gt; snackProviders) { ... }
- }</code></pre>
-
- <p>Contributing mapbindings from different modules is supported. For example,
- it is okay to have both <code>CandyModule</code> and <code>ChipsModule</code> both
- create their own <code>MapBinder&lt;String, Snack&gt;</code>, and to each contribute
- bindings to the snacks map. When that map is injected, it will contain
- entries from both modules.
-
- <p>The map's iteration order is consistent with the binding order. This is
- convenient when multiple elements are contributed by the same module because
- that module can order its bindings appropriately. Avoid relying on the
- iteration order of elements contributed by different modules, since there is
- no equivalent mechanism to order modules.
- 
- <p>The map is unmodifiable.  Elements can only be added to the map by
- configuring the MapBinder.  Elements can never be removed from the map.
-
- <p>Values are resolved at map injection time. If a value is bound to a
- provider, that provider's get method will be called each time the map is
- injected (unless the binding is also scoped, or a map of providers is injected).
-
- <p>Annotations are used to create different maps of the same key/value
- type. Each distinct annotation gets its own independent map.
-
- <p><strong>Keys must be distinct.</strong> If the same key is bound more than
- once, map injection will fail. However, use <code><a href="../../../../com/google/inject/multibindings/MapBinder.html#permitDuplicates()">permitDuplicates()</a></code> in
- order to allow duplicate keys; extra bindings to <code>Map&lt;K, Set&lt;V&gt;&gt;</code> and
- <code>Map&lt;K, Set&lt;Provider&lt;V&gt;&gt;</code> will be added.
-
- <p><strong>Keys must be non-null.</strong> <code>addBinding(null)</code> will
- throw an unchecked exception.
-
- <p><strong>Values must be non-null to use map injection.</strong> If any
- value is null, map injection will fail (although injecting a map of providers
- will not).</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;V&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinder.html#addBinding(K)">addBinding</a></span>(K key)</nobr>
-        
-        <div class="jd-descrdiv">Returns a binding builder used to add a new entry in the map.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;K,&nbsp;V&gt;
-            <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinder.html#newMapBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<K>, com.google.inject.TypeLiteral<V>)">newMapBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;K&gt; keyType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;V&gt; valueType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with no binding annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;K,&nbsp;V&gt;
-            <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinder.html#newMapBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<K>, com.google.inject.TypeLiteral<V>, java.lang.Class<? extends java.lang.annotation.Annotation>)">newMapBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;K&gt; keyType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;V&gt; valueType, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with <code>annotationType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;K,&nbsp;V&gt;
-            <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinder.html#newMapBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<K>, com.google.inject.TypeLiteral<V>, java.lang.annotation.Annotation)">newMapBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;K&gt; keyType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;V&gt; valueType, Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with <code>annotation</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;K,&nbsp;V&gt;
-            <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinder.html#newMapBinder(com.google.inject.Binder, java.lang.Class<K>, java.lang.Class<V>)">newMapBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;K&gt; keyType, Class&lt;V&gt; valueType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with no binding annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;K,&nbsp;V&gt;
-            <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinder.html#newMapBinder(com.google.inject.Binder, java.lang.Class<K>, java.lang.Class<V>, java.lang.Class<? extends java.lang.annotation.Annotation>)">newMapBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;K&gt; keyType, Class&lt;V&gt; valueType, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with <code>annotationType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;K,&nbsp;V&gt;
-            <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinder.html#newMapBinder(com.google.inject.Binder, java.lang.Class<K>, java.lang.Class<V>, java.lang.annotation.Annotation)">newMapBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;K&gt; keyType, Class&lt;V&gt; valueType, Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with <code>annotation</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinder.html#permitDuplicates()">permitDuplicates</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures the <code>MapBinder</code> to handle duplicate entries.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="addBinding(K)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;V&gt;
-      </span>
-      <span class="sympad">addBinding</span>
-      <span class="normal">(K key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>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.
-
- <p>It is an error to call this method without also calling one of the
- <code>to</code> methods on the returned binding builder.
-
- <p>Scoping elements independently is supported. Use the <code>in</code> method
- to specify a binding scope.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newMapBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<K>, com.google.inject.TypeLiteral<V>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;
-      </span>
-      <span class="sympad">newMapBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;K&gt; keyType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;V&gt; valueType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with no binding annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newMapBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<K>, com.google.inject.TypeLiteral<V>, java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;
-      </span>
-      <span class="sympad">newMapBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;K&gt; keyType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;V&gt; valueType, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with <code>annotationType</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newMapBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<K>, com.google.inject.TypeLiteral<V>, java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;
-      </span>
-      <span class="sympad">newMapBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;K&gt; keyType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;V&gt; valueType, Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with <code>annotation</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newMapBinder(com.google.inject.Binder, java.lang.Class<K>, java.lang.Class<V>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;
-      </span>
-      <span class="sympad">newMapBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;K&gt; keyType, Class&lt;V&gt; valueType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with no binding annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newMapBinder(com.google.inject.Binder, java.lang.Class<K>, java.lang.Class<V>, java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;
-      </span>
-      <span class="sympad">newMapBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;K&gt; keyType, Class&lt;V&gt; valueType, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with <code>annotationType</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newMapBinder(com.google.inject.Binder, java.lang.Class<K>, java.lang.Class<V>, java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;
-      </span>
-      <span class="sympad">newMapBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;K&gt; keyType, Class&lt;V&gt; valueType, Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with <code>annotation</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="permitDuplicates()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;
-      </span>
-      <span class="sympad">permitDuplicates</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Configures the <code>MapBinder</code> to handle duplicate entries.
- <p>When multiple equal keys are bound, the value that gets included in the map is
- arbitrary.
- <p>In addition to the <code>Map&lt;K, V&gt;</code> and <code>Map&lt;K, Provider&lt;V&gt;&gt;</code>
- maps that are normally bound, a <code>Map&lt;K, Set&lt;V&gt;&gt;</code> and
- <code>Map&lt;K, Set&lt;Provider&lt;V&gt;&gt;&gt;</code> are <em>also</em> bound, which contain
- all values bound to each key.
- <p>
- When multiple modules contribute elements to the map, this configuration
- option impacts all of them.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>this map binder</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/multibindings/MapBinderBinding.html b/javadoc/com/google/inject/multibindings/MapBinderBinding.html
deleted file mode 100755
index a309538..0000000
--- a/javadoc/com/google/inject/multibindings/MapBinderBinding.html
+++ /dev/null
@@ -1,797 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  MapBinderBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>MapBinderBinding</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.multibindings.MapBinderBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding for a MapBinder.
- <p>
- Although MapBinders may be injected through a variety of generic types (Map&lt;K, V>, Map
- &lt;K, Provider&lt;V>>, Map&lt;K, Set&lt;V>>, Map<K, Set&lt;
- Provider&lt;V>>, and even Set&lt;Map.Entry&lt;K, Provider&lt;V>>), a
- MapBinderBinding exists only on the Binding associated with the Map&lt;K, V> key. Other
- bindings can be validated to be derived from this MapBinderBinding using
- <code><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#containsElement(com.google.inject.spi.Element)">containsElement(Element)</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#containsElement(com.google.inject.spi.Element)">containsElement</a></span>(<a href="../../../../com/google/inject/spi/Element.html">Element</a> element)</nobr>
-        
-        <div class="jd-descrdiv">Returns true if this MapBinder contains the given Element in order to build the map or uses the
- given Element in order to support building and injecting the map.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            List&lt;Entry&lt;?,&nbsp;<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt;&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#getEntries()">getEntries</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns all entries in the Map.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#getKeyTypeLiteral()">getKeyTypeLiteral</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the TypeLiteral describing the keys of the map.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#getMapKey()">getMapKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the <code><a href="../../../../com/google/inject/Key.html">Key</a></code> for the map.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#getValueTypeLiteral()">getValueTypeLiteral</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the TypeLiteral describing the values of the map.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#permitsDuplicates()">permitsDuplicates</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns true if the MapBinder permits duplicates.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="containsElement(com.google.inject.spi.Element)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        boolean
-      </span>
-      <span class="sympad">containsElement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/Element.html">Element</a> element)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if this MapBinder contains the given Element in order to build the map or uses the
- given Element in order to support building and injecting the map. This will work for
- MapBinderBindings retrieved from an injector and <code><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Module...)">getElements(Module...)</a></code>. Usually this is
- only necessary if you are working with elements retrieved from modules (without an Injector),
- otherwise <code><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#getEntries()">getEntries()</a></code> and <code><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#permitsDuplicates()">permitsDuplicates()</a></code> are better options.
- <p>
- If you need to introspect the details of the map, such as the keys, values or if it permits
- duplicates, it is necessary to pass the elements through an Injector and use
- <code><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#getEntries()">getEntries()</a></code> and <code><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#permitsDuplicates()">permitsDuplicates()</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getEntries()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        List&lt;Entry&lt;?,&nbsp;<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt;&gt;&gt;
-      </span>
-      <span class="sympad">getEntries</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns all entries in the Map. The returned list of Map.Entries contains the key and a binding
- to the value. Duplicate keys or values will exist as separate Map.Entries in the returned list.
- This is only supported on bindings returned from an injector. This will throw
- UnsupportedOperationException if it is called on an element retrieved from
- <code><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Module...)">getElements(Module...)</a></code>.
- <p>
- The elements will always match the type Map's generic type. For example, if getMapKey returns a
- key of <code>Map&lt;String, Snack></code>, then this will always return a list of type
- <code>List&lt;Map.Entry&lt;String, Binding&lt;Snack>>></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getKeyTypeLiteral()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;
-      </span>
-      <span class="sympad">getKeyTypeLiteral</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the TypeLiteral describing the keys of the map.
- <p>
- The TypeLiteral will always match the type Map's generic type. For example, if getMapKey
- returns a key of <code>Map&lt;String, Snack></code>, then this will always return a
- <code>TypeLiteral&lt;String></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMapKey()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMapKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the <code><a href="../../../../com/google/inject/Key.html">Key</a></code> for the map. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getValueTypeLiteral()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;
-      </span>
-      <span class="sympad">getValueTypeLiteral</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the TypeLiteral describing the values of the map.
- <p>
- The TypeLiteral will always match the type Map's generic type. For example, if getMapKey
- returns a key of <code>Map&lt;String, Snack></code>, then this will always return a
- <code>TypeLiteral&lt;Snack></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="permitsDuplicates()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        boolean
-      </span>
-      <span class="sympad">permitsDuplicates</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if the MapBinder permits duplicates. This is only supported on bindings returned
- from an injector. This will throw UnsupportedOperationException if it is called on a
- MapBinderBinding retrieved from <code><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Module...)">getElements(Module...)</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/multibindings/Multibinder.html b/javadoc/com/google/inject/multibindings/Multibinder.html
deleted file mode 100755
index f10716c..0000000
--- a/javadoc/com/google/inject/multibindings/Multibinder.html
+++ /dev/null
@@ -1,1193 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Multibinder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    class
-<h1>Multibinder</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.multibindings.Multibinder&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>An API to bind multiple values separately, only to later inject them as a
- complete collection. Multibinder is intended for use in your application's
- module:
- <pre><code>
- public class SnacksModule extends AbstractModule {
-   protected void configure() {
-     Multibinder&lt;Snack&gt; multibinder
-         = Multibinder.newSetBinder(binder(), Snack.class);
-     multibinder.addBinding().toInstance(new Twix());
-     multibinder.addBinding().toProvider(SnickersProvider.class);
-     multibinder.addBinding().to(Skittles.class);
-   }
- }</code></pre>
-
- <p>With this binding, a Set<code>&lt;Snack&gt;</code> can now be injected:
- <pre><code>
- class SnackMachine {
-   @Inject
-   public SnackMachine(Set&lt;Snack&gt; snacks) { ... }
- }</code></pre>
-
- <p>Contributing multibindings from different modules is supported. For
- example, it is okay to have both <code>CandyModule</code> and <code>ChipsModule</code>
- to both create their own <code>Multibinder&lt;Snack&gt;</code>, and to each contribute
- bindings to the set of snacks. When that set is injected, it will contain
- elements from both modules.
- 
- <p>The set's iteration order is consistent with the binding order. This is
- convenient when multiple elements are contributed by the same module because
- that module can order its bindings appropriately. Avoid relying on the
- iteration order of elements contributed by different modules, since there is
- no equivalent mechanism to order modules.
- 
- <p>The set is unmodifiable.  Elements can only be added to the set by
- configuring the multibinder.  Elements can never be removed from the set.
-
- <p>Elements are resolved at set injection time. If an element is bound to a
- provider, that provider's get method will be called each time the set is
- injected (unless the binding is also scoped).
-
- <p>Annotations are be used to create different sets of the same element
- type. Each distinct annotation gets its own independent collection of
- elements.
-
- <p><strong>Elements must be distinct.</strong> If multiple bound elements
- have the same value, set injection will fail.
-
- <p><strong>Elements must be non-null.</strong> If any set element is null,
- set injection will fail.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/Multibinder.html#addBinding()">addBinding</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns a binding builder used to add a new element in the set.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/Multibinder.html#newSetBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<T>)">newSetBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with no binding annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/Multibinder.html#newSetBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)">newSetBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with <code>annotationType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/Multibinder.html#newSetBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<T>, java.lang.annotation.Annotation)">newSetBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type, Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with <code>annotation</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/Multibinder.html#newSetBinder(com.google.inject.Binder, java.lang.Class<T>)">newSetBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with no binding annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/Multibinder.html#newSetBinder(com.google.inject.Binder, java.lang.Class<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)">newSetBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;T&gt; type, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with <code>annotationType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/Multibinder.html#newSetBinder(com.google.inject.Binder, java.lang.Class<T>, java.lang.annotation.Annotation)">newSetBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;T&gt; type, Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with <code>annotation</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/Multibinder.html#permitDuplicates()">permitDuplicates</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures the bound set to silently discard duplicate elements.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="addBinding()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">addBinding</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>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.
-
- <p>It is an error to call this method without also calling one of the
- <code>to</code> methods on the returned binding builder.
-
- <p>Scoping elements independently is supported. Use the <code>in</code> method
- to specify a binding scope.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newSetBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">newSetBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with no binding annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newSetBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">newSetBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with <code>annotationType</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newSetBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<T>, java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">newSetBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type, Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with <code>annotation</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newSetBinder(com.google.inject.Binder, java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">newSetBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with no binding annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newSetBinder(com.google.inject.Binder, java.lang.Class<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">newSetBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;T&gt; type, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with <code>annotationType</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newSetBinder(com.google.inject.Binder, java.lang.Class<T>, java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">newSetBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;T&gt; type, Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with <code>annotation</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="permitDuplicates()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">permitDuplicates</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>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.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>this multibinder</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/multibindings/MultibinderBinding.html b/javadoc/com/google/inject/multibindings/MultibinderBinding.html
deleted file mode 100755
index 766a352..0000000
--- a/javadoc/com/google/inject/multibindings/MultibinderBinding.html
+++ /dev/null
@@ -1,731 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  MultibinderBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>MultibinderBinding</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.multibindings.MultibinderBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding for a Multibinder.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html#containsElement(com.google.inject.spi.Element)">containsElement</a></span>(<a href="../../../../com/google/inject/spi/Element.html">Element</a> element)</nobr>
-        
-        <div class="jd-descrdiv">Returns true if this Multibinder uses the given Element.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html#getElementTypeLiteral()">getElementTypeLiteral</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the TypeLiteral that describes the type of elements in the set.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            List&lt;<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html#getElements()">getElements</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns all bindings that make up the set.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html#getSetKey()">getSetKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for the set.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html#permitsDuplicates()">permitsDuplicates</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns true if the multibinder permits duplicates.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="containsElement(com.google.inject.spi.Element)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        boolean
-      </span>
-      <span class="sympad">containsElement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/Element.html">Element</a> element)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if this Multibinder uses the given Element. This will be true for bindings that
- derive the elements of the set and other bindings that Multibinder uses internally. This will
- work for MultibinderBindings retrieved from an injector and <code><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Module...)">getElements(Module...)</a></code>.
- Usually this is only necessary if you are working with elements retrieved from modules (without
- an Injector), otherwise <code><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html#getElements()">getElements()</a></code> and <code><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html#permitsDuplicates()">permitsDuplicates()</a></code> are better options.
- <p>
- If you need to introspect the details of the set, such as the values or if it permits
- duplicates, it is necessary to pass the elements through an Injector and use
- <code><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html#getElements()">getElements()</a></code> and <code><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html#permitsDuplicates()">permitsDuplicates()</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getElementTypeLiteral()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;
-      </span>
-      <span class="sympad">getElementTypeLiteral</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the TypeLiteral that describes the type of elements in the set.
- <p>
- The elements will always match the type Set's generic type. For example, if getSetKey returns a
- key of <code>Set&lt;String></code>, then this will always return a
- <code>TypeLiteral&lt;String></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getElements()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        List&lt;<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getElements</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns all bindings that make up the set. This is only supported on bindings returned from an
- injector. This will throw UnsupportedOperationException if it is called on an element
- retrieved from <code><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Module...)">getElements(Module...)</a></code>.
- <p>
- The elements will always match the type Set's generic type. For example, if getSetKey returns a
- key of <code>Set&lt;String></code>, then this will always return a list of type
- <code>List&lt;Binding&lt;String>></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSetKey()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getSetKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the key for the set. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="permitsDuplicates()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        boolean
-      </span>
-      <span class="sympad">permitsDuplicates</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if the multibinder permits duplicates. This is only supported on bindings returned
- from an injector. This will throw UnsupportedOperationException if it is called on a
- MultibinderBinding retrieved from <code><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Module...)">getElements(Module...)</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/multibindings/MultibindingsTargetVisitor.html b/javadoc/com/google/inject/multibindings/MultibindingsTargetVisitor.html
deleted file mode 100755
index 792c703..0000000
--- a/javadoc/com/google/inject/multibindings/MultibindingsTargetVisitor.html
+++ /dev/null
@@ -1,789 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  MultibindingsTargetVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>MultibindingsTargetVisitor</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.multibindings.MultibindingsTargetVisitor&lt;T,&nbsp;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A visitor for the multibinder extension.
- <p>
- If your <code><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> implements this interface, bindings created by using
- <code><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a></code> or <code><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a></code> will be visited through this interface.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html#visit(com.google.inject.multibindings.MapBinderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; mapbinding)</nobr>
-        
-        <div class="jd-descrdiv">Visits a binding created through <code><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html#visit(com.google.inject.multibindings.MultibinderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; multibinding)</nobr>
-        
-        <div class="jd-descrdiv">Visits a binding created through <code><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.BindingTargetVisitor" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">com.google.inject.spi.BindingTargetVisitor</a>
-
-<div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor">
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConstructorBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a constructor binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding created from converting a bound instance to a new type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ExposedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a key exposed from an enclosed private environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.InstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a linked key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.UntargettedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an untargetted binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visit(com.google.inject.multibindings.MapBinderBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; mapbinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visits a binding created through <code><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.multibindings.MultibinderBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; multibinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visits a binding created through <code><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/multibindings/package-descr.html b/javadoc/com/google/inject/multibindings/package-descr.html
deleted file mode 100755
index 1774bf7..0000000
--- a/javadoc/com/google/inject/multibindings/package-descr.html
+++ /dev/null
@@ -1,299 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.multibindings Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.multibindings</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<div class="jd-descr">
-<p>Extension for binding multiple instances in a collection; this extension requires <code>guice-multibindings-3.0.jar</code>.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/multibindings/package-summary.html b/javadoc/com/google/inject/multibindings/package-summary.html
deleted file mode 100755
index f354626..0000000
--- a/javadoc/com/google/inject/multibindings/package-summary.html
+++ /dev/null
@@ -1,360 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.multibindings
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.multibindings</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-
-
-  <div class="jd-descr">
-  <p>Extension for binding multiple instances in a collection; this extension requires <code>guice-multibindings-3.0.jar</code>.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding for a MapBinder.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding for a Multibinder.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">A visitor for the multibinder extension.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">An API to bind multiple map entries separately, only to later inject them as
- a complete map.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">An API to bind multiple values separately, only to later inject them as a
- complete collection.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/name/Named.html b/javadoc/com/google/inject/name/Named.html
deleted file mode 100755
index 6162cb9..0000000
--- a/javadoc/com/google/inject/name/Named.html
+++ /dev/null
@@ -1,563 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Named
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/name/Names.html">Names</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/name/Named.html">Named</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>Named</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.name.Named</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Annotates named things.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/name/Names.html b/javadoc/com/google/inject/name/Names.html
deleted file mode 100755
index e9ac987..0000000
--- a/javadoc/com/google/inject/name/Names.html
+++ /dev/null
@@ -1,861 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Names
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/name/Names.html">Names</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/name/Named.html">Named</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>Names</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.name.Names</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Utility methods for use with <code>@</code><code><a href="../../../../com/google/inject/name/Named.html">Named</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/name/Names.html#bindProperties(com.google.inject.Binder, java.util.Map<java.lang.String, java.lang.String>)">bindProperties</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Map&lt;String,&nbsp;String&gt; properties)</nobr>
-        
-        <div class="jd-descrdiv">Creates a constant binding to <code>@Named(key)</code> for each entry in
- <code>properties</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/name/Names.html#bindProperties(com.google.inject.Binder, java.util.Properties)">bindProperties</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Properties properties)</nobr>
-        
-        <div class="jd-descrdiv">Creates a constant binding to <code>@Named(key)</code> for each property.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/name/Named.html">Named</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/name/Names.html#named(java.lang.String)">named</a></span>(String name)</nobr>
-        
-        <div class="jd-descrdiv">Creates a <code><a href="../../../../com/google/inject/name/Named.html">Named</a></code> annotation with <code>name</code> as the value.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="bindProperties(com.google.inject.Binder, java.util.Map<java.lang.String, java.lang.String>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">bindProperties</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Map&lt;String,&nbsp;String&gt; properties)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a constant binding to <code>@Named(key)</code> for each entry in
- <code>properties</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="bindProperties(com.google.inject.Binder, java.util.Properties)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">bindProperties</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Properties properties)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a constant binding to <code>@Named(key)</code> for each property. This
- method binds all properties including those inherited from 
- <code><a href="null#defaults">defaults</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="named(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/name/Named.html">Named</a>
-      </span>
-      <span class="sympad">named</span>
-      <span class="normal">(String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a <code><a href="../../../../com/google/inject/name/Named.html">Named</a></code> annotation with <code>name</code> as the value.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/name/package-descr.html b/javadoc/com/google/inject/name/package-descr.html
deleted file mode 100755
index 326067c..0000000
--- a/javadoc/com/google/inject/name/package-descr.html
+++ /dev/null
@@ -1,296 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.name Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/name/Names.html">Names</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/name/Named.html">Named</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.name</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<div class="jd-descr">
-<p>Support for binding to string-based names.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/name/package-summary.html b/javadoc/com/google/inject/name/package-summary.html
deleted file mode 100755
index 828c5c0..0000000
--- a/javadoc/com/google/inject/name/package-summary.html
+++ /dev/null
@@ -1,332 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.name
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/name/Names.html">Names</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/name/Named.html">Named</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.name</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-
-
-  <div class="jd-descr">
-  <p>Support for binding to string-based names.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/name/Names.html">Names</a></td>
-              <td class="jd-descrcol" width="100%">Utility methods for use with <code>@</code><code><a href="../../../../com/google/inject/name/Named.html">Named</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/package-descr.html b/javadoc/com/google/inject/package-descr.html
deleted file mode 100755
index 952e7c5..0000000
--- a/javadoc/com/google/inject/package-descr.html
+++ /dev/null
@@ -1,360 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  com.google.inject Details
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<div class="jd-descr">
-<p><i>Google Guice</i> (pronounced "juice") is an ultra-lightweight dependency
- injection framework.  Please refer to the Guice
- <a href="http://docs.google.com/Doc?id=dd2fhx4z_5df5hw8">User's Guide</a>
- for a gentle introduction.
-
- <p>The principal public APIs in this package are:
-
- <dl>
- <dt><code><a href="../../../com/google/inject/Inject.html">Inject</a></code>
- <dd>The annotation you will use in your implementation classes to tell Guice
-     where and how it should send in ("inject") the objects you depend on
-     (your "dependencies").
-
- <dt><code><a href="../../../com/google/inject/Module.html">Module</a></code>
- <dd>The interface you will implement in order to specify "bindings" --
-     instructions for how Guice should handle injection -- for a particular
-     set of interfaces.
-
- <dt><code><a href="../../../com/google/inject/Binder.html">Binder</a></code>
- <dd>The object that Guice passes into your <code><a href="../../../com/google/inject/Module.html">Module</a></code>
-     to collect these bindings.
-
- <dt><code><a href="../../../com/google/inject/Provider.html">Provider</a></code>
- <dd>The interface you will implement when you need to customize exactly how
-     Guice creates instances for a particular binding.
-
- </dl>
-
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/package-summary.html b/javadoc/com/google/inject/package-summary.html
deleted file mode 100755
index 4cf0dc7..0000000
--- a/javadoc/com/google/inject/package-summary.html
+++ /dev/null
@@ -1,469 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  com.google.inject
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-
-
-  <div class="jd-descr">
-  <p><i>Google Guice</i> (pronounced "juice") is an ultra-lightweight dependency
- injection framework.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Binder.html">Binder</a></td>
-              <td class="jd-descrcol" width="100%">Collects configuration information (primarily <i>bindings</i>) which will be
- used to create an <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A mapping from a key (type and optional annotation) to the strategy for getting instances of the
- type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Injector.html">Injector</a></td>
-              <td class="jd-descrcol" width="100%">Builds the graphs of objects that make up your application.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">Injects dependencies into the fields and methods on instances of type <code>T</code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Module.html">Module</a></td>
-              <td class="jd-descrcol" width="100%">A module contributes configuration information, typically interface
- bindings, which will be used to create an <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></td>
-              <td class="jd-descrcol" width="100%">Returns a binder whose configuration information is hidden from its environment by default.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">An object capable of providing instances of type <code>T</code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Scope.html">Scope</a></td>
-              <td class="jd-descrcol" width="100%">A scope is a level of visibility that instances provided by Guice may have.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></td>
-              <td class="jd-descrcol" width="100%">A support class for <code><a href="../../../com/google/inject/Module.html">Module</a></code>s which reduces repetition and results in
- a more readable configuration.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Guice.html">Guice</a></td>
-              <td class="jd-descrcol" width="100%">The entry point to the Guice framework.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">Binding key consisting of an injection type and an optional annotation.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></td>
-              <td class="jd-descrcol" width="100%">A module whose configuration information is hidden from its environment by default.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Scopes.html">Scopes</a></td>
-              <td class="jd-descrcol" width="100%">Built-in scope implementations.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">Represents a generic type <code>T</code>.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Enums</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Stage.html">Stage</a></td>
-              <td class="jd-descrcol" width="100%">The stage we're running in.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Exceptions</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-              <td class="jd-descrcol" width="100%">Thrown when a programming error such as a misplaced annotation, illegal binding, or unsupported
- scope is found.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/CreationException.html">CreationException</a></td>
-              <td class="jd-descrcol" width="100%">Thrown when errors occur while creating a <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></td>
-              <td class="jd-descrcol" width="100%">Thrown from <code><a href="../../../com/google/inject/Provider.html#get()">get()</a></code> when an attempt is made to access a scoped
- object while the scope in question is not currently active.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></td>
-              <td class="jd-descrcol" width="100%">Indicates that there was a runtime failure while providing an instance.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/persist/PersistFilter.html b/javadoc/com/google/inject/persist/PersistFilter.html
deleted file mode 100755
index 2ce809d..0000000
--- a/javadoc/com/google/inject/persist/PersistFilter.html
+++ /dev/null
@@ -1,975 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  PersistFilter
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistFilter.html">PersistFilter</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistModule.html">PersistModule</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/Transactional.html">Transactional</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>PersistFilter</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.PersistFilter</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Apply this filter to enable the HTTP Request unit of work and to have
- guice-persist manage the lifecycle of active units of work.
- The filter automatically starts and stops the relevant <code><a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a></code>
- upon javax.servlet.Filter#init(javax.servlet.FilterConfig) and
- javax.servlet.Filter#destroy() respectively.
-
- <p> To be able to use the open session-in-view pattern (i.e. work per request),
- register this filter <b>once</b> in your Guice <code>ServletModule</code>. It is
- important that you register this filter before any other filter.
-
- For multiple providers, you should register this filter once per provider, inside
- a private module for each persist module installed (this must be the same private
- module where the specific persist module is itself installed).
-
- <p>
- Example configuration:
- <pre><code>public class MyModule extends ServletModule {
-    public void configureServlets() {
-      filter("/*").through(PersistFilter.class);
-
-      serve("/index.html").with(MyHtmlServlet.class);
-      // Etc.
-    </code>
-  }
- }</pre>
- <p>
- This filter is thread safe and allows you to create injectors concurrently
- and deploy multiple guice-persist modules within the same injector, or even
- multiple injectors with persist modules withing the same JVM or web app.
- <p>
- This filter requires the Guice Servlet extension.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistFilter.html#PersistFilter(com.google.inject.persist.UnitOfWork, com.google.inject.persist.PersistService)">PersistFilter</a></span>(<a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a> unitOfWork, <a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a> persistService)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistFilter.html#destroy()">destroy</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistFilter.html#doFilter(ServletRequest, ServletResponse, FilterChain)">doFilter</a></span>(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistFilter.html#init(FilterConfig)">init</a></span>(FilterConfig filterConfig)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="PersistFilter(com.google.inject.persist.UnitOfWork, com.google.inject.persist.PersistService)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">PersistFilter</span>
-      <span class="normal">(<a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a> unitOfWork, <a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a> persistService)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="destroy()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">destroy</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="doFilter(ServletRequest, ServletResponse, FilterChain)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">doFilter</span>
-      <span class="normal">(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>IOException</td>
-            <td></td>
-        </tr>  
-        <tr>
-            <th>ServletException</td>
-            <td></td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="init(FilterConfig)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">init</span>
-      <span class="normal">(FilterConfig filterConfig)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>ServletException</td>
-            <td></td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/persist/PersistModule.html b/javadoc/com/google/inject/persist/PersistModule.html
deleted file mode 100755
index 2a9c0bf..0000000
--- a/javadoc/com/google/inject/persist/PersistModule.html
+++ /dev/null
@@ -1,1450 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  PersistModule
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistFilter.html">PersistFilter</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistModule.html">PersistModule</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/Transactional.html">Transactional</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    class
-<h1>PersistModule</h1>
-
-
-
-  
-  
-  
-
-  
-    extends <a href="../../../../com/google/inject/AbstractModule.html">AbstractModule</a><br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell"><a href="../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a></td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.PersistModule</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-direct" class="jd-expando-trigger closed"
-          ><img id="subclasses-direct-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Direct Subclasses
-
-  <div id="subclasses-direct">
-      <div id="subclasses-direct-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a>
-            
-          
-      </div>
-      <div id="subclasses-direct-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></td>
-              <td class="jd-descrcol" width="100%">JPA provider for guice persist.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Install this module to add guice-persist library support for JPA persistence
- providers.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistModule.html#PersistModule()">PersistModule</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistModule.html#configurePersistence()">configurePersistence</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            MethodInterceptor</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistModule.html#getTransactionInterceptor()">getTransactionInterceptor</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.AbstractModule" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.AbstractModule-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  <a href="../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a>
-
-<div id="inherited-methods-com.google.inject.AbstractModule">
-  <div id="inherited-methods-com.google.inject.AbstractModule-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.AbstractModule-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.Key<T>)">bind</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.TypeLiteral<T>)">bind</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bind(java.lang.Class<T>)">bind</a></span>(Class&lt;T&gt; clazz)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindConstant()">bindConstant</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation, <a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#binder()">binder</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets direct access to the underlying <code>Binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> builder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#currentStage()">currentStage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#install(com.google.inject.Module)">install</a></span>(<a href="../../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requestInjection(java.lang.Object)">requestInjection</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection</a></span>(Class...&lt;?&gt; types)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requireBinding(com.google.inject.Key<?>)">requireBinding</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>key</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requireBinding(java.lang.Class<?>)">requireBinding</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>type</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Module" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Module-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Module.html">com.google.inject.Module</a>
-
-<div id="inherited-methods-com.google.inject.Module">
-  <div id="inherited-methods-com.google.inject.Module-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Module-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Module.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="PersistModule()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">PersistModule</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="configure()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">configure</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Configures a <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="configurePersistence()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">configurePersistence</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTransactionInterceptor()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-        abstract 
-         
-        MethodInterceptor
-      </span>
-      <span class="sympad">getTransactionInterceptor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/persist/PersistService.html b/javadoc/com/google/inject/persist/PersistService.html
deleted file mode 100755
index 1b3bcdc..0000000
--- a/javadoc/com/google/inject/persist/PersistService.html
+++ /dev/null
@@ -1,571 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  PersistService
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistFilter.html">PersistFilter</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistModule.html">PersistModule</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/Transactional.html">Transactional</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>PersistService</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.PersistService</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Persistence provider service. Use this to manage the overall
- startup and stop of the persistence module(s).
-
- TODO(dhanji): Integrate with Service API when appropriate.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistService.html#start()">start</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Starts the underlying persistence engine and makes guice-persist ready for
- use.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistService.html#stop()">stop</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Stops the underlying persistence engine.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="start()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">start</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Starts the underlying persistence engine and makes guice-persist ready for
- use. For instance, with JPA, it creates an EntityManagerFactory and may
- open connection pools. This method must be called by your code prior to
- using any guice-persist or JPA artifacts. If already started,
- calling this method does nothing, if already stopped, it also does
- nothing.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="stop()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">stop</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Stops the underlying persistence engine. For instance, with JPA, it
- closes the <code>EntityManagerFactory</code>. If already stopped, calling this
- method does nothing. If not yet started, it also does nothing.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/persist/Transactional.html b/javadoc/com/google/inject/persist/Transactional.html
deleted file mode 100755
index 618615d..0000000
--- a/javadoc/com/google/inject/persist/Transactional.html
+++ /dev/null
@@ -1,580 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Transactional
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistFilter.html">PersistFilter</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistModule.html">PersistModule</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/Transactional.html">Transactional</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>Transactional</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.Transactional</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p><p> Any method or class marked with this annotation will be considered for transactionality.
- Consult the documentation on http://code.google.com/p/google-guice for detailed semantics.
- Marking a method <code>@Transactional</code> will start a new transaction before the method
- executes and commit it after the method returns.
- <p>
- If the method throws an exception, the transaction will be rolled back <em>unless</em>
- you have specifically requested not to in the #ignore() clause.
- <p>
- Similarly, the set of exceptions that will trigger a rollback can be defined in
- the #rollbackOn() clause. By default, only unchecked exceptions trigger a
- rollback.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/persist/UnitOfWork.html b/javadoc/com/google/inject/persist/UnitOfWork.html
deleted file mode 100755
index 6d17521..0000000
--- a/javadoc/com/google/inject/persist/UnitOfWork.html
+++ /dev/null
@@ -1,582 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  UnitOfWork
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistFilter.html">PersistFilter</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistModule.html">PersistModule</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/Transactional.html">Transactional</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>UnitOfWork</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.UnitOfWork</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>This interface is used to gain manual control over the unit of work. This is mostly to do
- work in non-request, non-transactional threads. Or where more fine-grained control over the unit
- of work is required. Starting and ending a unit of work directly corresponds to opening and
- closing a <code>Session</code>, <code>EntityManager</code> or <code>ObjectContainer</code> respectively.
- <p> The
- Unit of Work referred to by UnitOfWork will always be local to the calling thread. Be careful to
- end() in a finally block. Neither JPA, nor Hibernate supports threadsafe sessions (reasoning
- behind thread-locality of Unit of Work semantics).
-
- <ul>
-   <li>Using UnitOfWork with the PersistFilter inside a request is not recommended.</li>
-   <li>Using UnitOfWork with session-per-txn strategy is not terribly clever either.</li>
-   <li>Using UnitOfWork with session-per-request strategy but *outside* a request (i.e. in a
-       background or bootstrap thread) is probably a good use case.</li>
-  </ul></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/UnitOfWork.html#begin()">begin</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Starts a Unit Of Work.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/UnitOfWork.html#end()">end</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Declares an end to the current Unit of Work.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="begin()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">begin</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Starts a Unit Of Work. Underneath, causes a session to the data layer to be opened. If there
- is already one open, the invocation will do nothing. In this way, you can define arbitrary
- units-of-work that nest within one another safely.
-
- Transaction semantics are not affected.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="end()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">end</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Declares an end to the current Unit of Work. Underneath, causes any open session to the data
- layer to close. If there is no Unit of work open, then the call returns silently. You can
- safely invoke end() repeatedly.
- <p>
- Transaction semantics are not affected.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/persist/finder/DynamicFinder.html b/javadoc/com/google/inject/persist/finder/DynamicFinder.html
deleted file mode 100755
index c6061e1..0000000
--- a/javadoc/com/google/inject/persist/finder/DynamicFinder.html
+++ /dev/null
@@ -1,881 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  DynamicFinder
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/Finder.html">Finder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/FirstResult.html">FirstResult</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/MaxResults.html">MaxResults</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>DynamicFinder</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.finder.DynamicFinder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Utility that helps you introspect dynamic finder methods.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html#DynamicFinder(java.lang.reflect.Method)">DynamicFinder</a></span>(Method method)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html#from(java.lang.reflect.Method)">from</a></span>(Method method)</nobr>
-        
-        <div class="jd-descrdiv">Returns some metadata if the method is annotated <code>@Finder</code> or null.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/persist/finder/Finder.html">Finder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html#metadata()">metadata</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="DynamicFinder(java.lang.reflect.Method)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">DynamicFinder</span>
-      <span class="normal">(Method method)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="from(java.lang.reflect.Method)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a>
-      </span>
-      <span class="sympad">from</span>
-      <span class="normal">(Method method)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns some metadata if the method is annotated <code>@Finder</code> or null.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>method</td>
-          <td>a method you want to test as a dynamic finder
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="metadata()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/persist/finder/Finder.html">Finder</a>
-      </span>
-      <span class="sympad">metadata</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/persist/finder/Finder.html b/javadoc/com/google/inject/persist/finder/Finder.html
deleted file mode 100755
index cc93b8a..0000000
--- a/javadoc/com/google/inject/persist/finder/Finder.html
+++ /dev/null
@@ -1,566 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  Finder
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/Finder.html">Finder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/FirstResult.html">FirstResult</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/MaxResults.html">MaxResults</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>Finder</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.finder.Finder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Marks a method stub as a dynamic finder. The method is intercepted and replaced with the
- specified JPAQL query. Provides result auto-boxing and automatic parameter binding.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/persist/finder/FirstResult.html b/javadoc/com/google/inject/persist/finder/FirstResult.html
deleted file mode 100755
index 74d1fcb..0000000
--- a/javadoc/com/google/inject/persist/finder/FirstResult.html
+++ /dev/null
@@ -1,567 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  FirstResult
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/Finder.html">Finder</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/FirstResult.html">FirstResult</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/MaxResults.html">MaxResults</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>FirstResult</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.finder.FirstResult</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Annotate any dynamic finder method's integer argument with this to pass in
- the index of the first result in the result set you are interested in.
- Useful for paging result sets. Complemented by <code><a href="../../../../../com/google/inject/persist/finder/MaxResults.html">MaxResults</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/persist/finder/MaxResults.html b/javadoc/com/google/inject/persist/finder/MaxResults.html
deleted file mode 100755
index 99d5017..0000000
--- a/javadoc/com/google/inject/persist/finder/MaxResults.html
+++ /dev/null
@@ -1,567 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  MaxResults
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/Finder.html">Finder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/FirstResult.html">FirstResult</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/MaxResults.html">MaxResults</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>MaxResults</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.finder.MaxResults</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Annotate any dynamic finder method's integer argument with this to pass in
- the maximum size of returned result window. Usefule for paging result sets.
- Complement of <code><a href="../../../../../com/google/inject/persist/finder/FirstResult.html">FirstResult</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/persist/finder/package-descr.html b/javadoc/com/google/inject/persist/finder/package-descr.html
deleted file mode 100755
index 8d4022b..0000000
--- a/javadoc/com/google/inject/persist/finder/package-descr.html
+++ /dev/null
@@ -1,298 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  com.google.inject.persist.finder Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/Finder.html">Finder</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/FirstResult.html">FirstResult</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/MaxResults.html">MaxResults</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.persist.finder</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<div class="jd-descr">
-<p>Dynamic Finder API for Guice Persist.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/persist/finder/package-summary.html b/javadoc/com/google/inject/persist/finder/package-summary.html
deleted file mode 100755
index a1e7b63..0000000
--- a/javadoc/com/google/inject/persist/finder/package-summary.html
+++ /dev/null
@@ -1,334 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  com.google.inject.persist.finder
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/Finder.html">Finder</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/FirstResult.html">FirstResult</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/MaxResults.html">MaxResults</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.persist.finder</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-
-
-  <div class="jd-descr">
-  <p>Dynamic Finder API for Guice Persist.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a></td>
-              <td class="jd-descrcol" width="100%">Utility that helps you introspect dynamic finder methods.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/persist/jpa/JpaPersistModule.html b/javadoc/com/google/inject/persist/jpa/JpaPersistModule.html
deleted file mode 100755
index 113ee9f..0000000
--- a/javadoc/com/google/inject/persist/jpa/JpaPersistModule.html
+++ /dev/null
@@ -1,1593 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  JpaPersistModule
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>JpaPersistModule</h1>
-
-
-
-  
-  
-  
-
-  
-  
-  
-
-  
-    extends <a href="../../../../../com/google/inject/persist/PersistModule.html">PersistModule</a><br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="4" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell"><a href="../../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a></td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell"><a href="../../../../../com/google/inject/persist/PersistModule.html">com.google.inject.persist.PersistModule</a></td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.jpa.JpaPersistModule</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>JPA provider for guice persist.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html#JpaPersistModule(java.lang.String)">JpaPersistModule</a></span>(String jpaUnit)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html#addFinder(java.lang.Class<T>)">addFinder</a></span>(Class&lt;T&gt; iface)</nobr>
-        
-        <div class="jd-descrdiv">Adds an interface to this module to use as a dynamic finder.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html#properties(java.util.Properties)">properties</a></span>(Properties properties)</nobr>
-        
-        <div class="jd-descrdiv">Configures the JPA persistence provider with a set of properties.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html#configurePersistence()">configurePersistence</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            MethodInterceptor</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html#getTransactionInterceptor()">getTransactionInterceptor</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.persist.PersistModule" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.persist.PersistModule-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  <a href="../../../../../com/google/inject/persist/PersistModule.html">com.google.inject.persist.PersistModule</a>
-
-<div id="inherited-methods-com.google.inject.persist.PersistModule">
-  <div id="inherited-methods-com.google.inject.persist.PersistModule-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.persist.PersistModule-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/PersistModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/PersistModule.html#configurePersistence()">configurePersistence</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            MethodInterceptor</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/PersistModule.html#getTransactionInterceptor()">getTransactionInterceptor</a></span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.AbstractModule" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.AbstractModule-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  <a href="../../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a>
-
-<div id="inherited-methods-com.google.inject.AbstractModule">
-  <div id="inherited-methods-com.google.inject.AbstractModule-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.AbstractModule-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.Key<T>)">bind</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.TypeLiteral<T>)">bind</a></span>(<a href="../../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bind(java.lang.Class<T>)">bind</a></span>(Class&lt;T&gt; clazz)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bindConstant()">bindConstant</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener</a></span>(<a href="../../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation, <a href="../../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#binder()">binder</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets direct access to the underlying <code>Binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../../com/google/inject/Binder.html">Binder</a> builder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes</a></span>(<a href="../../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#currentStage()">currentStage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#install(com.google.inject.Module)">install</a></span>(<a href="../../../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#requestInjection(java.lang.Object)">requestInjection</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection</a></span>(Class...&lt;?&gt; types)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#requireBinding(com.google.inject.Key<?>)">requireBinding</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>key</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#requireBinding(java.lang.Class<?>)">requireBinding</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>type</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Module" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Module-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/Module.html">com.google.inject.Module</a>
-
-<div id="inherited-methods-com.google.inject.Module">
-  <div id="inherited-methods-com.google.inject.Module-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Module-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/Module.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="JpaPersistModule(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">JpaPersistModule</span>
-      <span class="normal">(String jpaUnit)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="addFinder(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a>
-      </span>
-      <span class="sympad">addFinder</span>
-      <span class="normal">(Class&lt;T&gt; iface)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Adds an interface to this module to use as a dynamic finder.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>iface</td>
-          <td>Any interface type whose methods are all dynamic finders.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="properties(java.util.Properties)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a>
-      </span>
-      <span class="sympad">properties</span>
-      <span class="normal">(Properties properties)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Configures the JPA persistence provider with a set of properties.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>properties</td>
-          <td>A set of name value pairs that configure a JPA persistence
- provider as per the specification.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="configurePersistence()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">configurePersistence</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTransactionInterceptor()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        MethodInterceptor
-      </span>
-      <span class="sympad">getTransactionInterceptor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/persist/jpa/package-descr.html b/javadoc/com/google/inject/persist/jpa/package-descr.html
deleted file mode 100755
index 5801d98..0000000
--- a/javadoc/com/google/inject/persist/jpa/package-descr.html
+++ /dev/null
@@ -1,291 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  com.google.inject.persist.jpa Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.persist.jpa</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<div class="jd-descr">
-<p>guice-persist's Java Persistence API (JPA) support.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/persist/jpa/package-summary.html b/javadoc/com/google/inject/persist/jpa/package-summary.html
deleted file mode 100755
index 43fba06..0000000
--- a/javadoc/com/google/inject/persist/jpa/package-summary.html
+++ /dev/null
@@ -1,327 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  com.google.inject.persist.jpa
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.persist.jpa</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-
-
-  <div class="jd-descr">
-  <p>guice-persist's Java Persistence API (JPA) support.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></td>
-              <td class="jd-descrcol" width="100%">JPA provider for guice persist.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/persist/package-descr.html b/javadoc/com/google/inject/persist/package-descr.html
deleted file mode 100755
index 022cb87..0000000
--- a/javadoc/com/google/inject/persist/package-descr.html
+++ /dev/null
@@ -1,303 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.persist Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistFilter.html">PersistFilter</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistModule.html">PersistModule</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/Transactional.html">Transactional</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.persist</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<div class="jd-descr">
-<p>Guice Persist: a lightweight persistence library for Guice; this extension requires <code>guice-persist-3.0.jar</code>.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/persist/package-summary.html b/javadoc/com/google/inject/persist/package-summary.html
deleted file mode 100755
index 071c273..0000000
--- a/javadoc/com/google/inject/persist/package-summary.html
+++ /dev/null
@@ -1,360 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.persist
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistFilter.html">PersistFilter</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistModule.html">PersistModule</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/Transactional.html">Transactional</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.persist</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-
-
-  <div class="jd-descr">
-  <p>Guice Persist: a lightweight persistence library for Guice; this extension requires <code>guice-persist-3.0.jar</code>.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a></td>
-              <td class="jd-descrcol" width="100%">Persistence provider service.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a></td>
-              <td class="jd-descrcol" width="100%">This interface is used to gain manual control over the unit of work.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/persist/PersistFilter.html">PersistFilter</a></td>
-              <td class="jd-descrcol" width="100%">Apply this filter to enable the HTTP Request unit of work and to have
- guice-persist manage the lifecycle of active units of work.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/persist/PersistModule.html">PersistModule</a></td>
-              <td class="jd-descrcol" width="100%">Install this module to add guice-persist library support for JPA persistence
- providers.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/servlet/GuiceFilter.html b/javadoc/com/google/inject/servlet/GuiceFilter.html
deleted file mode 100755
index b8c54dd..0000000
--- a/javadoc/com/google/inject/servlet/GuiceFilter.html
+++ /dev/null
@@ -1,978 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  GuiceFilter
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>GuiceFilter</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.GuiceFilter</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p><p>
- Apply this filter in web.xml above all other filters (typically), to all requests where you plan
-  to use servlet scopes. This is also needed in order to dispatch requests to injectable filters
-  and servlets:
-  <pre>
-  &lt;filter&gt;
-    &lt;filter-name&gt;guiceFilter&lt;/filter-name&gt;
-    &lt;filter-class&gt;<b>com.google.inject.servlet.GuiceFilter</b>&lt;/filter-class&gt;
-  &lt;/filter&gt;
-
-  &lt;filter-mapping&gt;
-    &lt;filter-name&gt;guiceFilter&lt;/filter-name&gt;
-    &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
-  &lt;/filter-mapping&gt;
-  </pre>
-
- This filter must appear before every filter that makes use of Guice injection or servlet
- scopes functionality. Typically, you will only register this filter in web.xml and register
- any other filters (and servlets) using a <code><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/GuiceFilter.html#GuiceFilter()">GuiceFilter</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/GuiceFilter.html#destroy()">destroy</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/GuiceFilter.html#doFilter(ServletRequest, ServletResponse, FilterChain)">doFilter</a></span>(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/GuiceFilter.html#init(FilterConfig)">init</a></span>(FilterConfig filterConfig)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="GuiceFilter()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">GuiceFilter</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="destroy()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">destroy</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="doFilter(ServletRequest, ServletResponse, FilterChain)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">doFilter</span>
-      <span class="normal">(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>IOException</td>
-            <td></td>
-        </tr>  
-        <tr>
-            <th>ServletException</td>
-            <td></td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="init(FilterConfig)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">init</span>
-      <span class="normal">(FilterConfig filterConfig)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>ServletException</td>
-            <td></td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/servlet/GuiceServletContextListener.html b/javadoc/com/google/inject/servlet/GuiceServletContextListener.html
deleted file mode 100755
index 68d9105..0000000
--- a/javadoc/com/google/inject/servlet/GuiceServletContextListener.html
+++ /dev/null
@@ -1,962 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  GuiceServletContextListener
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    class
-<h1>GuiceServletContextListener</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.GuiceServletContextListener</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>As of Guice 2.0 you can still use (your subclasses of) <code>GuiceServletContextListener</code>
- class as a logical place to create and configure your injector. This will ensure the injector
- is created when the web application is deployed.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html#GuiceServletContextListener()">GuiceServletContextListener</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html#contextDestroyed(ServletContextEvent)">contextDestroyed</a></span>(ServletContextEvent servletContextEvent)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html#contextInitialized(ServletContextEvent)">contextInitialized</a></span>(ServletContextEvent servletContextEvent)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Injector.html">Injector</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html#getInjector()">getInjector</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Override this method to create (or otherwise obtain a reference to) your
- injector.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="GuiceServletContextListener()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">GuiceServletContextListener</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="contextDestroyed(ServletContextEvent)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">contextDestroyed</span>
-      <span class="normal">(ServletContextEvent servletContextEvent)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="contextInitialized(ServletContextEvent)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">contextInitialized</span>
-      <span class="normal">(ServletContextEvent servletContextEvent)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="getInjector()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Injector.html">Injector</a>
-      </span>
-      <span class="sympad">getInjector</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Override this method to create (or otherwise obtain a reference to) your
- injector.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/servlet/InstanceFilterBinding.html b/javadoc/com/google/inject/servlet/InstanceFilterBinding.html
deleted file mode 100755
index 33d120a..0000000
--- a/javadoc/com/google/inject/servlet/InstanceFilterBinding.html
+++ /dev/null
@@ -1,661 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InstanceFilterBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>InstanceFilterBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.InstanceFilterBinding</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding to a single instance of a filter. </p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Filter</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html#getFilterInstance()">getFilterInstance</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the filter instance that will be used.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.servlet.ServletModuleBinding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">com.google.inject.servlet.ServletModuleBinding</a>
-
-<div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding">
-  <div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Map&lt;String,&nbsp;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getInitParams()">getInitParams</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns any context params supplied when creating the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getPattern()">getPattern</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern used to match against the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getUriPatternType()">getUriPatternType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern type that this binding was created with.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#matchesUri(java.lang.String)">matchesUri</a></span>(String uri)</nobr>
-        
-        <div class="jd-descrdiv">Returns true if the given URI will match this binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getFilterInstance()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Filter
-      </span>
-      <span class="sympad">getFilterInstance</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the filter instance that will be used. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/servlet/InstanceServletBinding.html b/javadoc/com/google/inject/servlet/InstanceServletBinding.html
deleted file mode 100755
index 5413d7a..0000000
--- a/javadoc/com/google/inject/servlet/InstanceServletBinding.html
+++ /dev/null
@@ -1,661 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InstanceServletBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>InstanceServletBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.InstanceServletBinding</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding to a single instance of a servlet. </p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            HttpServlet</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html#getServletInstance()">getServletInstance</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the servlet instance that will be used.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.servlet.ServletModuleBinding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">com.google.inject.servlet.ServletModuleBinding</a>
-
-<div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding">
-  <div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Map&lt;String,&nbsp;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getInitParams()">getInitParams</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns any context params supplied when creating the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getPattern()">getPattern</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern used to match against the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getUriPatternType()">getUriPatternType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern type that this binding was created with.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#matchesUri(java.lang.String)">matchesUri</a></span>(String uri)</nobr>
-        
-        <div class="jd-descrdiv">Returns true if the given URI will match this binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getServletInstance()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        HttpServlet
-      </span>
-      <span class="sympad">getServletInstance</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the servlet instance that will be used. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/servlet/LinkedFilterBinding.html b/javadoc/com/google/inject/servlet/LinkedFilterBinding.html
deleted file mode 100755
index 8cfef05..0000000
--- a/javadoc/com/google/inject/servlet/LinkedFilterBinding.html
+++ /dev/null
@@ -1,661 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  LinkedFilterBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>LinkedFilterBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.LinkedFilterBinding</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A linked binding to a filter. </p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Filter&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html#getLinkedKey()">getLinkedKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key used to lookup the filter instance.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.servlet.ServletModuleBinding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">com.google.inject.servlet.ServletModuleBinding</a>
-
-<div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding">
-  <div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Map&lt;String,&nbsp;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getInitParams()">getInitParams</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns any context params supplied when creating the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getPattern()">getPattern</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern used to match against the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getUriPatternType()">getUriPatternType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern type that this binding was created with.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#matchesUri(java.lang.String)">matchesUri</a></span>(String uri)</nobr>
-        
-        <div class="jd-descrdiv">Returns true if the given URI will match this binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getLinkedKey()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Filter&gt;
-      </span>
-      <span class="sympad">getLinkedKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the key used to lookup the filter instance. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/servlet/LinkedServletBinding.html b/javadoc/com/google/inject/servlet/LinkedServletBinding.html
deleted file mode 100755
index 7edb7e3..0000000
--- a/javadoc/com/google/inject/servlet/LinkedServletBinding.html
+++ /dev/null
@@ -1,661 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  LinkedServletBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>LinkedServletBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.LinkedServletBinding</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A linked binding to a servlet. </p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;HttpServlet&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html#getLinkedKey()">getLinkedKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key used to lookup the servlet instance.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.servlet.ServletModuleBinding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">com.google.inject.servlet.ServletModuleBinding</a>
-
-<div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding">
-  <div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Map&lt;String,&nbsp;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getInitParams()">getInitParams</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns any context params supplied when creating the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getPattern()">getPattern</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern used to match against the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getUriPatternType()">getUriPatternType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern type that this binding was created with.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#matchesUri(java.lang.String)">matchesUri</a></span>(String uri)</nobr>
-        
-        <div class="jd-descrdiv">Returns true if the given URI will match this binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getLinkedKey()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;HttpServlet&gt;
-      </span>
-      <span class="sympad">getLinkedKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the key used to lookup the servlet instance. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/servlet/RequestParameters.html b/javadoc/com/google/inject/servlet/RequestParameters.html
deleted file mode 100755
index 8796286..0000000
--- a/javadoc/com/google/inject/servlet/RequestParameters.html
+++ /dev/null
@@ -1,586 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  RequestParameters
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>RequestParameters</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.RequestParameters</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Apply this to field or parameters of type <code>Map&lt;String, String[]&gt;</code>
- when you want the HTTP request parameter map to be injected.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/servlet/RequestScoped.html b/javadoc/com/google/inject/servlet/RequestScoped.html
deleted file mode 100755
index ba9a80f..0000000
--- a/javadoc/com/google/inject/servlet/RequestScoped.html
+++ /dev/null
@@ -1,585 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  RequestScoped
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>RequestScoped</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.RequestScoped</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Apply this to implementation classes when you want one instance per request.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html b/javadoc/com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html
deleted file mode 100755
index 35d41bc..0000000
--- a/javadoc/com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html
+++ /dev/null
@@ -1,765 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ServletModule.FilterKeyBindingBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-    static 
-     
-    
-    interface
-<h1>ServletModule.FilterKeyBindingBuilder</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.ServletModule.FilterKeyBindingBuilder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>See the EDSL examples at <code><a href="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets()</a></code></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(Filter)">through</a></span>(Filter filter)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(Filter, java.util.Map<java.lang.String, java.lang.String>)">through</a></span>(Filter filter, Map&lt;String,&nbsp;String&gt; initParams)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(com.google.inject.Key<? extends Filter>)">through</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Filter&gt; filterKey)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(com.google.inject.Key<? extends Filter>, java.util.Map<java.lang.String, java.lang.String>)">through</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Filter&gt; filterKey, Map&lt;String,&nbsp;String&gt; initParams)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(java.lang.Class<? extends Filter>)">through</a></span>(Class&lt;?&nbsp;extends&nbsp;Filter&gt; filterKey)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(java.lang.Class<? extends Filter>, java.util.Map<java.lang.String, java.lang.String>)">through</a></span>(Class&lt;?&nbsp;extends&nbsp;Filter&gt; filterKey, Map&lt;String,&nbsp;String&gt; initParams)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="through(Filter)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">through</span>
-      <span class="normal">(Filter filter)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="through(Filter, java.util.Map<java.lang.String, java.lang.String>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">through</span>
-      <span class="normal">(Filter filter, Map&lt;String,&nbsp;String&gt; initParams)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="through(com.google.inject.Key<? extends Filter>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">through</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Filter&gt; filterKey)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="through(com.google.inject.Key<? extends Filter>, java.util.Map<java.lang.String, java.lang.String>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">through</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Filter&gt; filterKey, Map&lt;String,&nbsp;String&gt; initParams)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="through(java.lang.Class<? extends Filter>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">through</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Filter&gt; filterKey)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="through(java.lang.Class<? extends Filter>, java.util.Map<java.lang.String, java.lang.String>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">through</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Filter&gt; filterKey, Map&lt;String,&nbsp;String&gt; initParams)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html b/javadoc/com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html
deleted file mode 100755
index 44d20bc..0000000
--- a/javadoc/com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html
+++ /dev/null
@@ -1,765 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ServletModule.ServletKeyBindingBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-    static 
-     
-    
-    interface
-<h1>ServletModule.ServletKeyBindingBuilder</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.ServletModule.ServletKeyBindingBuilder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>See the EDSL examples at <code><a href="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets()</a></code></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(HttpServlet)">with</a></span>(HttpServlet servlet)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(HttpServlet, java.util.Map<java.lang.String, java.lang.String>)">with</a></span>(HttpServlet servlet, Map&lt;String,&nbsp;String&gt; initParams)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(com.google.inject.Key<? extends HttpServlet>)">with</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;HttpServlet&gt; servletKey)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(com.google.inject.Key<? extends HttpServlet>, java.util.Map<java.lang.String, java.lang.String>)">with</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;HttpServlet&gt; servletKey, Map&lt;String,&nbsp;String&gt; initParams)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(java.lang.Class<? extends HttpServlet>)">with</a></span>(Class&lt;?&nbsp;extends&nbsp;HttpServlet&gt; servletKey)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(java.lang.Class<? extends HttpServlet>, java.util.Map<java.lang.String, java.lang.String>)">with</a></span>(Class&lt;?&nbsp;extends&nbsp;HttpServlet&gt; servletKey, Map&lt;String,&nbsp;String&gt; initParams)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="with(HttpServlet)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">with</span>
-      <span class="normal">(HttpServlet servlet)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="with(HttpServlet, java.util.Map<java.lang.String, java.lang.String>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">with</span>
-      <span class="normal">(HttpServlet servlet, Map&lt;String,&nbsp;String&gt; initParams)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="with(com.google.inject.Key<? extends HttpServlet>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">with</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;HttpServlet&gt; servletKey)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="with(com.google.inject.Key<? extends HttpServlet>, java.util.Map<java.lang.String, java.lang.String>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">with</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;HttpServlet&gt; servletKey, Map&lt;String,&nbsp;String&gt; initParams)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="with(java.lang.Class<? extends HttpServlet>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">with</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;HttpServlet&gt; servletKey)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="with(java.lang.Class<? extends HttpServlet>, java.util.Map<java.lang.String, java.lang.String>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">with</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;HttpServlet&gt; servletKey, Map&lt;String,&nbsp;String&gt; initParams)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/servlet/ServletModule.html b/javadoc/com/google/inject/servlet/ServletModule.html
deleted file mode 100755
index 5b45f16..0000000
--- a/javadoc/com/google/inject/servlet/ServletModule.html
+++ /dev/null
@@ -1,1880 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ServletModule
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubctors">Ctors</a>
-  
-
-
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>ServletModule</h1>
-
-
-
-  
-  
-  
-
-  
-    extends <a href="../../../../com/google/inject/AbstractModule.html">AbstractModule</a><br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell"><a href="../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a></td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.ServletModule</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Configures the servlet scopes and creates bindings for the servlet API
- objects so you can inject the request, response, session, etc.
-
- <p>
- You should subclass this module to register servlets and
- filters in the <code><a href="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets()</a></code> method.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_2.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        interface</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></td>
-      <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets()</a></code>&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-Guice_2.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        interface</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></td>
-      <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets()</a></code>&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.html#ServletModule()">ServletModule</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets</a></span>()</nobr>
-        
-        <div class="jd-descrdiv"><h3>Servlet Mapping EDSL</h3>
-
- <p> Part of the EDSL builder language for configuring servlets
- and filters with guice-servlet.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.html#filter(java.lang.String, java.lang.String...)">filter</a></span>(String urlPattern, String... morePatterns)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.html#filterRegex(java.lang.String, java.lang.String...)">filterRegex</a></span>(String regex, String... regexes)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            ServletContext</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.html#getServletContext()">getServletContext</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">This method only works if you are using the <code><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></code> to
- create your injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.html#serve(java.lang.String, java.lang.String...)">serve</a></span>(String urlPattern, String... morePatterns)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.html#serveRegex(java.lang.String, java.lang.String...)">serveRegex</a></span>(String regex, String... regexes)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.AbstractModule" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.AbstractModule-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  <a href="../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a>
-
-<div id="inherited-methods-com.google.inject.AbstractModule">
-  <div id="inherited-methods-com.google.inject.AbstractModule-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.AbstractModule-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.Key<T>)">bind</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.TypeLiteral<T>)">bind</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bind(java.lang.Class<T>)">bind</a></span>(Class&lt;T&gt; clazz)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindConstant()">bindConstant</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation, <a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#binder()">binder</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets direct access to the underlying <code>Binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> builder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#currentStage()">currentStage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#install(com.google.inject.Module)">install</a></span>(<a href="../../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requestInjection(java.lang.Object)">requestInjection</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection</a></span>(Class...&lt;?&gt; types)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requireBinding(com.google.inject.Key<?>)">requireBinding</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>key</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requireBinding(java.lang.Class<?>)">requireBinding</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>type</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Module" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Module-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Module.html">com.google.inject.Module</a>
-
-<div id="inherited-methods-com.google.inject.Module">
-  <div id="inherited-methods-com.google.inject.Module-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Module-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Module.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="ServletModule()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ServletModule</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="configure()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">configure</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Configures a <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="configureServlets()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">configureServlets</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p><h3>Servlet Mapping EDSL</h3>
-
- <p> Part of the EDSL builder language for configuring servlets
- and filters with guice-servlet. Think of this as an in-code replacement for web.xml.
- Filters and servlets are configured here using simple java method calls. Here is a typical
- example of registering a filter when creating your Guice injector:
-
- <pre>
-   Guice.createInjector(..., new ServletModule() {
-
-     @Override
-     protected void configureServlets() {
-       <b>serve("*.html").with(MyServlet.class)</b>
-     }
-   }
- </pre>
-
- This registers a servlet (subclass of <code>HttpServlet</code>) called <code>MyServlet</code> to service
- any web pages ending in <code>.html</code>. You can also use a path-style syntax to register
- servlets:
-
- <pre>
-       <b>serve("/my/*").with(MyServlet.class)</b>
- </pre>
-
- Every servlet (or filter) is required to be a singleton. If you cannot annotate the class
- directly, you should add a separate <code>bind(..).in(Singleton.class)</code> rule elsewhere in
- your module. Mapping a servlet that is bound under any other scope is an error.
-
- <p>
- <h4>Dispatch Order</h4>
- You are free to register as many servlets and filters as you like this way. They will
- be compared and dispatched in the order in which the filter methods are called:
-
- <pre>
-
-   Guice.createInjector(..., new ServletModule() {
-
-     @Override
-     protected void configureServlets() {
-       filter("/*").through(MyFilter.class);
-       filter("*.css").through(MyCssFilter.class);
-       filter("*.jpg").through(new MyJpgFilter());
-       // etc..
-
-       serve("*.html").with(MyServlet.class);
-       serve("/my/*").with(MyServlet.class);
-       serve("*.jpg").with(new MyServlet());
-       // etc..
-      }
-    }
- </pre>
- This will traverse down the list of rules in lexical order. For example, a url
-  "<code>/my/file.js</code>" (after it runs through the matching filters) will first
-  be compared against the servlet mapping:
- 
- <pre>
-       serve("*.html").with(MyServlet.class);
- </pre>
- And failing that, it will descend to the next servlet mapping:
-
- <pre>
-       serve("/my/*").with(MyServlet.class);
- </pre>
-
- Since this rule matches, Guice Servlet will dispatch to <code>MyServlet</code>. These
- two mapping rules can also be written in more compact form using varargs syntax:
-
- <pre>
-       serve(<b>"*.html", "/my/*"</b>).with(MyServlet.class);
- </pre>
- 
- This way you can map several URI patterns to the same servlet. A similar syntax is
- also available for filter mappings.
-
- <p>
- <h4>Regular Expressions</h4>
- You can also map servlets (or filters) to URIs using regular expressions:
- <pre>
-    <b>serveRegex("(.)*ajax(.)*").with(MyAjaxServlet.class)</b>
- </pre>
-
- This will map any URI containing the text "ajax" in it to <code>MyAjaxServlet</code>. Such as:
- <ul>
- <li>http://www.google.com/ajax.html</li>
- <li>http://www.google.com/content/ajax/index</li>
- <li>http://www.google.com/it/is_totally_ajaxian</li>
- </ul>
-
-
- <h3>Initialization Parameters</h3>
-
- Servlets (and filters) allow you to pass in init params
- using the <code>&lt;init-param&gt;</code> tag in web.xml. You can similarly pass in parameters to
- Servlets and filters registered in Guice-servlet using a java.util.Map of parameter
- name/value pairs. For example, to initialize <code>MyServlet</code> with two parameters
- (<code>name="Dhanji", site="google.com"</code>) you could write:
-
- <pre>
-  Map&lt;String, String&gt; params = new HashMap&lt;String, String&gt;();
-  params.put("name", "Dhanji");
-  params.put("site", "google.com");
-
-  ...
-      serve("/*").with(MyServlet.class, <b>params</b>)
- </pre>
-
- <p>
- <h3>Binding Keys</h3>
-
- You can also bind keys rather than classes. This lets you hide
- implementations with package-local visbility and expose them using
- only a Guice module and an annotation:
-
- <pre>
-  ...
-      filter("/*").through(<b>Key.get(Filter.class, Fave.class)</b>);
- </pre>
-
- Where <code>Filter.class</code> refers to the Servlet API interface and <code>Fave.class</code> is a
- custom binding annotation. Elsewhere (in one of your own modules) you can bind this
- filter's implementation:
-
- <pre>
-   bind(Filter.class)<b>.annotatedWith(Fave.class)</b>.to(MyFilterImpl.class);
- </pre>
-
- See <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> for more information on binding syntax.
-
- <p>
- <h3>Multiple Modules</h3>
-
- It is sometimes useful to capture servlet and filter mappings from multiple different
- modules. This is essential if you want to package and offer drop-in Guice plugins that
- provide servlet functionality.
-
- <p>
- Guice Servlet allows you to register several instances of <code>ServletModule</code> to your
- injector. The order in which these modules are installed determines the dispatch order
- of filters and the precedence order of servlets. For example, if you had two servlet modules,
- <code>RpcModule</code> and <code>WebServiceModule</code> and they each contained a filter that mapped
- to the same URI pattern, <code>"/*"</code>:
-
- <p>
- In <code>RpcModule</code>:
- <pre>
-     filter("/*").through(RpcFilter.class);
- </pre>
-
- In <code>WebServiceModule</code>:
- <pre>
-     filter("/*").through(WebServiceFilter.class);
- </pre>
-
- Then the order in which these filters are dispatched is determined by the order in which
- the modules are installed:
-
- <pre>
-   <b>install(new WebServiceModule());</b>
-   install(new RpcModule());
- </pre>
-
- In the case shown above <code>WebServiceFilter</code> will run first.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="filter(java.lang.String, java.lang.String...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a>
-      </span>
-      <span class="sympad">filter</span>
-      <span class="normal">(String urlPattern, String... morePatterns)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>urlPattern</td>
-          <td>Any Servlet-style pattern. examples: /*, /html/*, *.html, etc.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="filterRegex(java.lang.String, java.lang.String...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a>
-      </span>
-      <span class="sympad">filterRegex</span>
-      <span class="normal">(String regex, String... regexes)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>regex</td>
-          <td>Any Java-style regular expression.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getServletContext()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        ServletContext
-      </span>
-      <span class="sympad">getServletContext</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>This method only works if you are using the <code><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></code> to
- create your injector. Otherwise, it returns null.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>The current servlet context.</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="serve(java.lang.String, java.lang.String...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a>
-      </span>
-      <span class="sympad">serve</span>
-      <span class="normal">(String urlPattern, String... morePatterns)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>urlPattern</td>
-          <td>Any Servlet-style pattern. examples: /*, /html/*, *.html, etc.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="serveRegex(java.lang.String, java.lang.String...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a>
-      </span>
-      <span class="sympad">serveRegex</span>
-      <span class="normal">(String regex, String... regexes)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>regex</td>
-          <td>Any Java-style regular expression.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/servlet/ServletModuleBinding.html b/javadoc/com/google/inject/servlet/ServletModuleBinding.html
deleted file mode 100755
index 59600f0..0000000
--- a/javadoc/com/google/inject/servlet/ServletModuleBinding.html
+++ /dev/null
@@ -1,743 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ServletModuleBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ServletModuleBinding</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.ServletModuleBinding</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a>,
-            
-              <a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a>,
-            
-              <a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a>,
-            
-              <a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></td>
-              <td class="jd-descrcol" width="100%">A binding to a single instance of a filter.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></td>
-              <td class="jd-descrcol" width="100%">A binding to a single instance of a servlet.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></td>
-              <td class="jd-descrcol" width="100%">A linked binding to a filter.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></td>
-              <td class="jd-descrcol" width="100%">A linked binding to a servlet.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Map&lt;String,&nbsp;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getInitParams()">getInitParams</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns any context params supplied when creating the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getPattern()">getPattern</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern used to match against the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getUriPatternType()">getUriPatternType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern type that this binding was created with.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#matchesUri(java.lang.String)">matchesUri</a></span>(String uri)</nobr>
-        
-        <div class="jd-descrdiv">Returns true if the given URI will match this binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getInitParams()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Map&lt;String,&nbsp;String&gt;
-      </span>
-      <span class="sympad">getInitParams</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns any context params supplied when creating the binding. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getPattern()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getPattern</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the pattern used to match against the binding. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getUriPatternType()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a>
-      </span>
-      <span class="sympad">getUriPatternType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the pattern type that this binding was created with. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="matchesUri(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        boolean
-      </span>
-      <span class="sympad">matchesUri</span>
-      <span class="normal">(String uri)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if the given URI will match this binding. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/servlet/ServletModuleTargetVisitor.html b/javadoc/com/google/inject/servlet/ServletModuleTargetVisitor.html
deleted file mode 100755
index 918a54a..0000000
--- a/javadoc/com/google/inject/servlet/ServletModuleTargetVisitor.html
+++ /dev/null
@@ -1,928 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ServletModuleTargetVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ServletModuleTargetVisitor</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.ServletModuleTargetVisitor&lt;T,&nbsp;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A visitor for the servlet extension.
- 
- If your <code><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> implements this interface, bindings created by using
- <code><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></code> will be visited through this interface.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html#visit(com.google.inject.servlet.InstanceFilterBinding)">visit</a></span>(<a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visits a filter binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html#filter(java.lang.String, java.lang.String...)">filter(String, String...)</a></code> where
- <code><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(java.lang.Class<? extends Filter>)">through(Class<? extends Filter>)</a></code> is called with a Filter.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html#visit(com.google.inject.servlet.InstanceServletBinding)">visit</a></span>(<a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visits a servlet binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html#serve(java.lang.String, java.lang.String...)">serve(String, String...)</a></code> where 
- <code><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(java.lang.Class<? extends HttpServlet>)">with(Class<? extends HttpServlet>)</a></code>, is called with an HttpServlet.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html#visit(com.google.inject.servlet.LinkedFilterBinding)">visit</a></span>(<a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visits a filter binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html#filter(java.lang.String, java.lang.String...)">filter(String, String...)</a></code>, where
- <code><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(java.lang.Class<? extends Filter>)">through(Class<? extends Filter>)</a></code> is called with a Class or Key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html#visit(com.google.inject.servlet.LinkedServletBinding)">visit</a></span>(<a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visits a servlet binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html#serve(java.lang.String, java.lang.String...)">serve(String, String...)</a></code> where
- <code><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(java.lang.Class<? extends HttpServlet>)">with(Class<? extends HttpServlet>)</a></code>, is called with a Class or Key.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.BindingTargetVisitor" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">com.google.inject.spi.BindingTargetVisitor</a>
-
-<div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor">
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConstructorBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a constructor binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding created from converting a bound instance to a new type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ExposedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a key exposed from an enclosed private environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.InstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a linked key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.UntargettedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an untargetted binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visit(com.google.inject.servlet.InstanceFilterBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a> binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visits a filter binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html#filter(java.lang.String, java.lang.String...)">filter(String, String...)</a></code> where
- <code><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(java.lang.Class<? extends Filter>)">through(Class<? extends Filter>)</a></code> is called with a Filter.
- 
- If multiple patterns were specified, this will be called multiple times. 
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.servlet.InstanceServletBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a> binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visits a servlet binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html#serve(java.lang.String, java.lang.String...)">serve(String, String...)</a></code> where 
- <code><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(java.lang.Class<? extends HttpServlet>)">with(Class<? extends HttpServlet>)</a></code>, is called with an HttpServlet.
- 
- If multiple patterns were specified, this will be called multiple times.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.servlet.LinkedFilterBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a> binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visits a filter binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html#filter(java.lang.String, java.lang.String...)">filter(String, String...)</a></code>, where
- <code><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(java.lang.Class<? extends Filter>)">through(Class<? extends Filter>)</a></code> is called with a Class or Key.
- 
- If multiple patterns were specified, this will be called multiple times.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.servlet.LinkedServletBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a> binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visits a servlet binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html#serve(java.lang.String, java.lang.String...)">serve(String, String...)</a></code> where
- <code><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(java.lang.Class<? extends HttpServlet>)">with(Class<? extends HttpServlet>)</a></code>, is called with a Class or Key.
- 
- If multiple patterns were specified, this will be called multiple times.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/servlet/ServletScopes.html b/javadoc/com/google/inject/servlet/ServletScopes.html
deleted file mode 100755
index 2e2eb7a..0000000
--- a/javadoc/com/google/inject/servlet/ServletScopes.html
+++ /dev/null
@@ -1,995 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ServletScopes
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-  <a href="#constants">Constants</a>
-  
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>ServletScopes</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.ServletScopes</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Servlet scopes.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-
-    
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><a href="../../../../com/google/inject/Scope.html">Scope</a></td>
-        <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletScopes.html#REQUEST">REQUEST</a></td>
-        <td class="jd-descrcol" width="100%">HTTP servlet request scope.</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><a href="../../../../com/google/inject/Scope.html">Scope</a></td>
-        <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletScopes.html#SESSION">SESSION</a></td>
-        <td class="jd-descrcol" width="100%">HTTP session scope.</td>
-    </tr>
-    
-    
-
-</table>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            Callable&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletScopes.html#continueRequest(java.util.concurrent.Callable<T>, java.util.Map<com.google.inject.Key<?>, java.lang.Object>)">continueRequest</a></span>(Callable&lt;T&gt; callable, Map&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;,&nbsp;Object&gt; seedMap)</nobr>
-        
-        <div class="jd-descrdiv">Wraps the given callable in a contextual callable that "continues" the
- HTTP request in another thread.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            Callable&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletScopes.html#scopeRequest(java.util.concurrent.Callable<T>, java.util.Map<com.google.inject.Key<?>, java.lang.Object>)">scopeRequest</a></span>(Callable&lt;T&gt; callable, Map&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;,&nbsp;Object&gt; seedMap)</nobr>
-        
-        <div class="jd-descrdiv">Scopes the given callable inside a request scope.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Constants</h2>
-
-
-
-
-<A NAME="REQUEST"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../com/google/inject/Scope.html">Scope</a>
-      </span>
-        REQUEST
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>HTTP servlet request scope.
-</p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="SESSION"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../com/google/inject/Scope.html">Scope</a>
-      </span>
-        SESSION
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>HTTP session scope.
-</p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="continueRequest(java.util.concurrent.Callable<T>, java.util.Map<com.google.inject.Key<?>, java.lang.Object>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        Callable&lt;T&gt;
-      </span>
-      <span class="sympad">continueRequest</span>
-      <span class="normal">(Callable&lt;T&gt; callable, Map&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;,&nbsp;Object&gt; seedMap)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Wraps the given callable in a contextual callable that "continues" the
- HTTP request in another thread. This acts as a way of transporting
- request context data from the request processing thread to to worker
- threads.
- <p>
- There are some limitations:
- <ul>
-   <li>Derived objects (i.e. anything marked @RequestScoped will not be
-      transported.</li>
-   <li>State changes to the HttpServletRequest after this method is called
-      will not be seen in the continued thread.</li>
-   <li>Only the HttpServletRequest, ServletContext and request parameter
-      map are available in the continued thread. The response and session
-      are not available.</li>
- </ul></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>callable</td>
-          <td>code to be executed in another thread, which depends on
-     the request scope.</td>
-        </tr>
-        <tr>
-          <th>seedMap</td>
-          <td>the initial set of scoped instances for Guice to seed the
-     request scope with.  To seed a key with null, use <code>null</code> as
-     the value.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a callable that will invoke the given callable, making the request
-     context available to it.</li></ul>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></td>
-            <td>if this method is called from a non-request
-     thread, or if the request has completed.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="scopeRequest(java.util.concurrent.Callable<T>, java.util.Map<com.google.inject.Key<?>, java.lang.Object>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        Callable&lt;T&gt;
-      </span>
-      <span class="sympad">scopeRequest</span>
-      <span class="normal">(Callable&lt;T&gt; callable, Map&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;,&nbsp;Object&gt; seedMap)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Scopes the given callable inside a request scope. This is not the same
- as the HTTP request scope, but is used if no HTTP request scope is in
- progress. In this way, keys can be scoped as @RequestScoped and exist
- in non-HTTP requests (for example: RPC requests) as well as in HTTP
- request threads.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>callable</td>
-          <td>code to be executed which depends on the request scope.
-     Typically in another thread, but not necessarily so.</td>
-        </tr>
-        <tr>
-          <th>seedMap</td>
-          <td>the initial set of scoped instances for Guice to seed the
-     request scope with.  To seed a key with null, use <code>null</code> as
-     the value.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a callable that when called will run inside the a request scope
-     that exposes the instances in the <code>seedMap</code> as scoped keys.</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/servlet/SessionScoped.html b/javadoc/com/google/inject/servlet/SessionScoped.html
deleted file mode 100755
index 2f8a877..0000000
--- a/javadoc/com/google/inject/servlet/SessionScoped.html
+++ /dev/null
@@ -1,590 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  SessionScoped
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>SessionScoped</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.SessionScoped</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Apply this to implementation classes when you want one instance per session.</p>
-
-
-
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/Scopes.html#SINGLETON">SINGLETON</a></code></li>
-      </ul>
-  </div>
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/servlet/UriPatternType.html b/javadoc/com/google/inject/servlet/UriPatternType.html
deleted file mode 100755
index 086ed4f..0000000
--- a/javadoc/com/google/inject/servlet/UriPatternType.html
+++ /dev/null
@@ -1,1194 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  UriPatternType
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-  <a href="#enumconstants">Enums</a>
-  
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    enum
-<h1>UriPatternType</h1>
-
-
-
-  
-  
-  
-
-  
-    extends Enum&lt;E&nbsp;extends&nbsp;Enum&lt;E&gt;&gt;<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Enum&lt;E&nbsp;extends&nbsp;java.lang.Enum&lt;E&gt;&gt;</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.UriPatternType</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>An enumeration of the available URI-pattern matching styles</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a>&nbsp;</td>
-        <td class="jd-linkcol">REGEX&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a>&nbsp;</td>
-        <td class="jd-linkcol">SERVLET&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/UriPatternType.html#valueOf(java.lang.String)">valueOf</a></span>(String name)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            static
-            
-            <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType[]</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/UriPatternType.html#values()">values</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Enum" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Enum-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Enum
-
-<div id="inherited-methods-java.lang.Enum">
-  <div id="inherited-methods-java.lang.Enum-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Enum-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(E arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;E&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getDeclaringClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">name</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">ordinal</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&nbsp;extends&nbsp;Enum&lt;T&gt;&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">valueOf</span>(Class&lt;T&gt; arg0, String arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Comparable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Comparable-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.Comparable
-
-<div id="inherited-methods-java.lang.Comparable">
-  <div id="inherited-methods-java.lang.Comparable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Comparable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(T arg0)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Enum Values</h2>
-
-
-
-
-<A NAME="REGEX"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a>
-      </span>
-        REGEX
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="SERVLET"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a>
-      </span>
-        SERVLET
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="valueOf(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a>
-      </span>
-      <span class="sympad">valueOf</span>
-      <span class="normal">(String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="values()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-         
-         
-        <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType[]</a>
-      </span>
-      <span class="sympad">values</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/servlet/package-descr.html b/javadoc/com/google/inject/servlet/package-descr.html
deleted file mode 100755
index 5490358..0000000
--- a/javadoc/com/google/inject/servlet/package-descr.html
+++ /dev/null
@@ -1,321 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.servlet Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.servlet</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<div class="jd-descr">
-<p>Servlet API scopes, bindings and registration; this extension requires <code>guice-servlet-3.0.jar</code>.
-
- <p>Apply <code><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></code> to any servlets which will use the servlet
- scopes. Install <code><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></code> into your <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> to install everything at once.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/servlet/package-summary.html b/javadoc/com/google/inject/servlet/package-summary.html
deleted file mode 100755
index 033f66a..0000000
--- a/javadoc/com/google/inject/servlet/package-summary.html
+++ /dev/null
@@ -1,420 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.servlet
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.servlet</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-
-
-  <div class="jd-descr">
-  <p>Servlet API scopes, bindings and registration; this extension requires <code>guice-servlet-3.0.jar</code>.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></td>
-              <td class="jd-descrcol" width="100%">A binding to a single instance of a filter.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></td>
-              <td class="jd-descrcol" width="100%">A binding to a single instance of a servlet.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></td>
-              <td class="jd-descrcol" width="100%">A linked binding to a filter.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></td>
-              <td class="jd-descrcol" width="100%">A linked binding to a servlet.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets()</a></code>&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets()</a></code>&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></td>
-              <td class="jd-descrcol" width="100%">A binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">A visitor for the servlet extension.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></td>
-              <td class="jd-descrcol" width="100%"><p>
- Apply this filter in web.xml above all other filters (typically), to all requests where you plan
-  to use servlet scopes.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></td>
-              <td class="jd-descrcol" width="100%">As of Guice 2.0 you can still use (your subclasses of) <code>GuiceServletContextListener</code>
- class as a logical place to create and configure your injector.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></td>
-              <td class="jd-descrcol" width="100%">Configures the servlet scopes and creates bindings for the servlet API
- objects so you can inject the request, response, session, etc.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></td>
-              <td class="jd-descrcol" width="100%">Servlet scopes.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Enums</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></td>
-              <td class="jd-descrcol" width="100%">An enumeration of the available URI-pattern matching styles&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/BindingScopingVisitor.html b/javadoc/com/google/inject/spi/BindingScopingVisitor.html
deleted file mode 100755
index 453211c..0000000
--- a/javadoc/com/google/inject/spi/BindingScopingVisitor.html
+++ /dev/null
@@ -1,753 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  BindingScopingVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>BindingScopingVisitor</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.BindingScopingVisitor&lt;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</td>
-              <td class="jd-descrcol" width="100%">No-op visitor for subclassing.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Visits each of the strategies used to scope an injection.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html#visitEagerSingleton()">visitEagerSingleton</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Visit an eager singleton or single instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html#visitNoScoping()">visitNoScoping</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Visit an unspecified or unscoped strategy.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html#visitScope(com.google.inject.Scope)">visitScope</a></span>(<a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-        <div class="jd-descrdiv">Visit a scope instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html#visitScopeAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)">visitScopeAnnotation</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation)</nobr>
-        
-        <div class="jd-descrdiv">Visit a scope annotation.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visitEagerSingleton()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visitEagerSingleton</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an eager singleton or single instance. This scope strategy is found on both module and
- injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visitNoScoping()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visitNoScoping</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an unspecified or unscoped strategy. On a module, this strategy indicates that the
- injector should use scoping annotations to find a scope. On an injector, it indicates that
- no scope is applied to the binding. An unscoped binding will behave like a scoped one when it
- is linked to a scoped binding.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visitScope(com.google.inject.Scope)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visitScope</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a scope instance. This scope strategy is found on both module and injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visitScopeAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visitScopeAnnotation</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a scope annotation. This scope strategy is found only on module bindings. The instance
- that implements this scope is registered by <code><a href="../../../../com/google/inject/Binder.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">Binder.bindScope()</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/BindingTargetVisitor.html b/javadoc/com/google/inject/spi/BindingTargetVisitor.html
deleted file mode 100755
index 630c1d7..0000000
--- a/javadoc/com/google/inject/spi/BindingTargetVisitor.html
+++ /dev/null
@@ -1,1052 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  BindingTargetVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>BindingTargetVisitor</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.BindingTargetVisitor&lt;T,&nbsp;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;,
-            
-              <a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;,
-            
-              <a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;,
-            
-              <a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;,
-            
-              <a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;,
-            
-              <a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">A visitor for the AssistedInject extension.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">No-op visitor for subclassing.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</td>
-              <td class="jd-descrcol" width="100%"><code><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> that adds nodes and edges to the graph based on
- the visited <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">A visitor for the multibinder extension.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">A visitor for the servlet extension.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></td>
-              <td class="jd-descrcol" width="100%"><code><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> that returns a Collection of the
- <code><a href="../../../../com/google/inject/Key.html">Key</a></code>s of each Binding's dependencies.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Visits each of the strategies used to find an instance to satisfy an injection.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConstructorBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a constructor binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding created from converting a bound instance to a new type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ExposedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a key exposed from an enclosed private environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.InstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a linked key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.UntargettedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an untargetted binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visit(com.google.inject.spi.ConstructorBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a constructor binding. To resolve injections, an instance is instantiated by invoking
- <code>constructor</code>. This target is found only on injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a binding created from converting a bound instance to a new type. The source binding
- has the same binding annotation but a different type. This target is found only on injector
- bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ExposedBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a binding to a key exposed from an enclosed private environment. This target is only
- found in injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.InstanceBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a instance binding. The same instance is returned for every injection. This target is
- found in both module and injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a linked key binding. The other key's binding is used to resolve injections. This
- target is found in both module and injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type. This target is found only on injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a provider instance binding. The provider's <code>get</code> method is invoked to resolve
- injections. This target is found in both module and injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a provider key binding. To resolve injections, the provider key is first resolved, then
- that provider's <code>get</code> method is invoked. This target is found in both module and injector
- bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.UntargettedBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an untargetted binding. This target is found only on module bindings. It indicates
- that the injector should use its implicit binding strategies to resolve injections.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/ConstructorBinding.html b/javadoc/com/google/inject/spi/ConstructorBinding.html
deleted file mode 100755
index 7c28b8a..0000000
--- a/javadoc/com/google/inject/spi/ConstructorBinding.html
+++ /dev/null
@@ -1,938 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ConstructorBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ConstructorBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; 
-      
-        <a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ConstructorBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding to the constructor of a concrete clss. To resolve injections, an instance is
- instantiated by invoking the constructor.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ConstructorBinding.html#getConstructor()">getConstructor</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the constructor this binding injects.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ConstructorBinding.html#getInjectableMembers()">getInjectableMembers</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns all instance method and field injection points on <code>type</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Map&lt;Method,&nbsp;List&lt;MethodInterceptor&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ConstructorBinding.html#getMethodInterceptors()">getMethodInterceptors</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the interceptors applied to each method, in the order that they will be applied.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Binding.html">com.google.inject.Binding</a>
-
-<div id="inherited-methods-com.google.inject.Binding">
-  <div id="inherited-methods-com.google.inject.Binding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.HasDependencies" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.HasDependencies-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/HasDependencies.html">com.google.inject.spi.HasDependencies</a>
-
-<div id="inherited-methods-com.google.inject.spi.HasDependencies">
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/HasDependencies.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the known dependencies for this type.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getConstructor()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>
-      </span>
-      <span class="sympad">getConstructor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the constructor this binding injects.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getInjectableMembers()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;
-      </span>
-      <span class="sympad">getInjectableMembers</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns all instance method and field injection points on <code>type</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set of injection points. The set has a specified iteration order. All
-      fields are returned and then all methods. Within the fields, supertype fields are returned
-      before subtype fields. Similarly, supertype methods are returned before subtype methods.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMethodInterceptors()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Map&lt;Method,&nbsp;List&lt;MethodInterceptor&gt;&gt;
-      </span>
-      <span class="sympad">getMethodInterceptors</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the interceptors applied to each method, in the order that they will be applied.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty map
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/ConvertedConstantBinding.html b/javadoc/com/google/inject/spi/ConvertedConstantBinding.html
deleted file mode 100755
index 90cfb5e..0000000
--- a/javadoc/com/google/inject/spi/ConvertedConstantBinding.html
+++ /dev/null
@@ -1,985 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ConvertedConstantBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ConvertedConstantBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; 
-      
-        <a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ConvertedConstantBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding created from converting a bound instance to a new type. The source binding has the same
- binding annotation but a different type.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns a singleton set containing only the converted key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html#getSourceKey()">getSourceKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for the source binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html#getTypeConverterBinding()">getTypeConverterBinding</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the type converter binding used to convert the constant.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html#getValue()">getValue</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the converted value.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Binding.html">com.google.inject.Binding</a>
-
-<div id="inherited-methods-com.google.inject.Binding">
-  <div id="inherited-methods-com.google.inject.Binding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.HasDependencies" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.HasDependencies-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/HasDependencies.html">com.google.inject.spi.HasDependencies</a>
-
-<div id="inherited-methods-com.google.inject.spi.HasDependencies">
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/HasDependencies.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the known dependencies for this type.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getDependencies()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getDependencies</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a singleton set containing only the converted key.
-</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getSourceKey()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;String&gt;
-      </span>
-      <span class="sympad">getSourceKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the key for the source binding. That binding can e retrieved from an injector using
- <code><a href="../../../../com/google/inject/Injector.html#getBinding(com.google.inject.Key<T>)">Injector.getBinding(key)</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTypeConverterBinding()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a>
-      </span>
-      <span class="sympad">getTypeConverterBinding</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the type converter binding used to convert the constant.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getValue()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">getValue</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the converted value.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/DefaultBindingScopingVisitor.html b/javadoc/com/google/inject/spi/DefaultBindingScopingVisitor.html
deleted file mode 100755
index b89d017..0000000
--- a/javadoc/com/google/inject/spi/DefaultBindingScopingVisitor.html
+++ /dev/null
@@ -1,1203 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  DefaultBindingScopingVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>DefaultBindingScopingVisitor</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.DefaultBindingScopingVisitor&lt;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>No-op visitor for subclassing. All interface methods simply delegate to
- <code><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html#visitOther()">visitOther()</a></code>, returning its result.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html#DefaultBindingScopingVisitor()">DefaultBindingScopingVisitor</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html#visitEagerSingleton()">visitEagerSingleton</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Visit an eager singleton or single instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html#visitNoScoping()">visitNoScoping</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Visit an unspecified or unscoped strategy.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html#visitScope(com.google.inject.Scope)">visitScope</a></span>(<a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-        <div class="jd-descrdiv">Visit a scope instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html#visitScopeAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)">visitScopeAnnotation</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation)</nobr>
-        
-        <div class="jd-descrdiv">Visit a scope annotation.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html#visitOther()">visitOther</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Default visit implementation.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.BindingScopingVisitor" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.BindingScopingVisitor-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">com.google.inject.spi.BindingScopingVisitor</a>
-
-<div id="inherited-methods-com.google.inject.spi.BindingScopingVisitor">
-  <div id="inherited-methods-com.google.inject.spi.BindingScopingVisitor-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.BindingScopingVisitor-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html#visitEagerSingleton()">visitEagerSingleton</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Visit an eager singleton or single instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html#visitNoScoping()">visitNoScoping</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Visit an unspecified or unscoped strategy.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html#visitScope(com.google.inject.Scope)">visitScope</a></span>(<a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-        <div class="jd-descrdiv">Visit a scope instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html#visitScopeAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)">visitScopeAnnotation</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation)</nobr>
-        
-        <div class="jd-descrdiv">Visit a scope annotation.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="DefaultBindingScopingVisitor()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">DefaultBindingScopingVisitor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visitEagerSingleton()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visitEagerSingleton</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an eager singleton or single instance. This scope strategy is found on both module and
- injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visitNoScoping()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visitNoScoping</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an unspecified or unscoped strategy. On a module, this strategy indicates that the
- injector should use scoping annotations to find a scope. On an injector, it indicates that
- no scope is applied to the binding. An unscoped binding will behave like a scoped one when it
- is linked to a scoped binding.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visitScope(com.google.inject.Scope)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visitScope</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a scope instance. This scope strategy is found on both module and injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visitScopeAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visitScopeAnnotation</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a scope annotation. This scope strategy is found only on module bindings. The instance
- that implements this scope is registered by <code><a href="../../../../com/google/inject/Binder.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">Binder.bindScope()</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="visitOther()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visitOther</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Default visit implementation. Returns <code>null</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/DefaultBindingTargetVisitor.html b/javadoc/com/google/inject/spi/DefaultBindingTargetVisitor.html
deleted file mode 100755
index 24790f6..0000000
--- a/javadoc/com/google/inject/spi/DefaultBindingTargetVisitor.html
+++ /dev/null
@@ -1,1560 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  DefaultBindingTargetVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    class
-<h1>DefaultBindingTargetVisitor</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.DefaultBindingTargetVisitor&lt;T,&nbsp;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>No-op visitor for subclassing. All interface methods simply delegate to <code><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visitOther(com.google.inject.Binding<? extends T>)">visitOther(Binding)</a></code>, returning its result.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#DefaultBindingTargetVisitor()">DefaultBindingTargetVisitor</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visit(com.google.inject.spi.ConstructorBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; constructorBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a constructor binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; convertedConstantBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding created from converting a bound instance to a new type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visit(com.google.inject.spi.ExposedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; exposedBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a key exposed from an enclosed private environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visit(com.google.inject.spi.InstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; instanceBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; linkedKeyBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a linked key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visit(com.google.inject.spi.ProviderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; providerBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; providerInstanceBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; providerKeyBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visit(com.google.inject.spi.UntargettedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; untargettedBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an untargetted binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visitOther(com.google.inject.Binding<? extends T>)">visitOther</a></span>(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Default visit implementation.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.BindingTargetVisitor" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">com.google.inject.spi.BindingTargetVisitor</a>
-
-<div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor">
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConstructorBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a constructor binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding created from converting a bound instance to a new type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ExposedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a key exposed from an enclosed private environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.InstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a linked key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.UntargettedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an untargetted binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="DefaultBindingTargetVisitor()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">DefaultBindingTargetVisitor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visit(com.google.inject.spi.ConstructorBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; constructorBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a constructor binding. To resolve injections, an instance is instantiated by invoking
- <code>constructor</code>. This target is found only on injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; convertedConstantBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a binding created from converting a bound instance to a new type. The source binding
- has the same binding annotation but a different type. This target is found only on injector
- bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ExposedBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; exposedBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a binding to a key exposed from an enclosed private environment. This target is only
- found in injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.InstanceBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; instanceBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a instance binding. The same instance is returned for every injection. This target is
- found in both module and injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; linkedKeyBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a linked key binding. The other key's binding is used to resolve injections. This
- target is found in both module and injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; providerBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type. This target is found only on injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; providerInstanceBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a provider instance binding. The provider's <code>get</code> method is invoked to resolve
- injections. This target is found in both module and injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; providerKeyBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a provider key binding. To resolve injections, the provider key is first resolved, then
- that provider's <code>get</code> method is invoked. This target is found in both module and injector
- bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.UntargettedBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; untargettedBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an untargetted binding. This target is found only on module bindings. It indicates
- that the injector should use its implicit binding strategies to resolve injections.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="visitOther(com.google.inject.Binding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visitOther</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Default visit implementation. Returns <code>null</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/DefaultElementVisitor.html b/javadoc/com/google/inject/spi/DefaultElementVisitor.html
deleted file mode 100755
index 821c592..0000000
--- a/javadoc/com/google/inject/spi/DefaultElementVisitor.html
+++ /dev/null
@@ -1,1829 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  DefaultElementVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    class
-<h1>DefaultElementVisitor</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.DefaultElementVisitor&lt;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>No-op visitor for subclassing. All interface methods simply delegate to
- <code><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visitOther(com.google.inject.spi.Element)">visitOther(Element)</a></code>, returning its result.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#DefaultElementVisitor()">DefaultElementVisitor</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.Binding<T>)">visit</a></span>(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a mapping from a key (type and optional annotation) to the strategy for getting
- instances of the type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.DisableCircularProxiesOption)">visit</a></span>(<a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a> option)</nobr>
-        
-        <div class="jd-descrdiv">Visit a disable circular proxies command.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.InjectionRequest<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;?&gt; injectionRequest)</nobr>
-        
-        <div class="jd-descrdiv">Visit a request to inject the instance fields and methods of an instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.InterceptorBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a> interceptorBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a registration of interceptors for matching methods of matching classes.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.MembersInjectorLookup<T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt; lookup)</nobr>
-        
-        <div class="jd-descrdiv">Visit a lookup of the members injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.Message)">visit</a></span>(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-        <div class="jd-descrdiv">Visit an error message and the context in which it occured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.PrivateElements)">visit</a></span>(<a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a> privateElements)</nobr>
-        
-        <div class="jd-descrdiv">Visit a collection of configuration elements for a <code><a href="../../../../com/google/inject/PrivateBinder.html">private binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.ProviderLookup<T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt; providerLookup)</nobr>
-        
-        <div class="jd-descrdiv">Visit a lookup of the provider for a type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.RequireExplicitBindingsOption)">visit</a></span>(<a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a> option)</nobr>
-        
-        <div class="jd-descrdiv">Visit a require explicit bindings command.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.ScopeBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a> scopeBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a registration of a scope annotation with the scope that implements it.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.StaticInjectionRequest)">visit</a></span>(<a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a> staticInjectionRequest)</nobr>
-        
-        <div class="jd-descrdiv">Visit a request to inject the static fields and methods of type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.TypeConverterBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a> typeConverterBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a registration of type converters for matching target types.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.TypeListenerBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an injectable type listener binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visitOther(com.google.inject.spi.Element)">visitOther</a></span>(<a href="../../../../com/google/inject/spi/Element.html">Element</a> element)</nobr>
-        
-        <div class="jd-descrdiv">Default visit implementation.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.ElementVisitor" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.ElementVisitor-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/ElementVisitor.html">com.google.inject.spi.ElementVisitor</a>
-
-<div id="inherited-methods-com.google.inject.spi.ElementVisitor">
-  <div id="inherited-methods-com.google.inject.spi.ElementVisitor-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.ElementVisitor-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.Binding<T>)">visit</a></span>(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a mapping from a key (type and optional annotation) to the strategy for getting
- instances of the type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.DisableCircularProxiesOption)">visit</a></span>(<a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a> option)</nobr>
-        
-        <div class="jd-descrdiv">Visit a disable circular proxies command.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.InjectionRequest<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;?&gt; request)</nobr>
-        
-        <div class="jd-descrdiv">Visit a request to inject the instance fields and methods of an instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.InterceptorBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a registration of interceptors for matching methods of matching classes.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.MembersInjectorLookup<T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt; lookup)</nobr>
-        
-        <div class="jd-descrdiv">Visit a lookup of the members injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.Message)">visit</a></span>(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-        <div class="jd-descrdiv">Visit an error message and the context in which it occured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.PrivateElements)">visit</a></span>(<a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a> elements)</nobr>
-        
-        <div class="jd-descrdiv">Visit a collection of configuration elements for a <code><a href="../../../../com/google/inject/PrivateBinder.html">private binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.ProviderLookup<T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt; lookup)</nobr>
-        
-        <div class="jd-descrdiv">Visit a lookup of the provider for a type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.RequireExplicitBindingsOption)">visit</a></span>(<a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a> option)</nobr>
-        
-        <div class="jd-descrdiv">Visit a require explicit bindings command.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.ScopeBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a registration of a scope annotation with the scope that implements it.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.StaticInjectionRequest)">visit</a></span>(<a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a> request)</nobr>
-        
-        <div class="jd-descrdiv">Visit a request to inject the static fields and methods of type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.TypeConverterBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a registration of type converters for matching target types.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.TypeListenerBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an injectable type listener binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="DefaultElementVisitor()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">DefaultElementVisitor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visit(com.google.inject.Binding<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a mapping from a key (type and optional annotation) to the strategy for getting
- instances of the type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.DisableCircularProxiesOption)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a> option)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a disable circular proxies command.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.InjectionRequest<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;?&gt; injectionRequest)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a request to inject the instance fields and methods of an instance.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.InterceptorBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a> interceptorBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a registration of interceptors for matching methods of matching classes.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.MembersInjectorLookup<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt; lookup)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a lookup of the members injector.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.Message)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an error message and the context in which it occured.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.PrivateElements)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a> privateElements)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a collection of configuration elements for a <code><a href="../../../../com/google/inject/PrivateBinder.html">private binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderLookup<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt; providerLookup)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a lookup of the provider for a type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.RequireExplicitBindingsOption)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a> option)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a require explicit bindings command.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ScopeBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a> scopeBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a registration of a scope annotation with the scope that implements it.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.StaticInjectionRequest)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a> staticInjectionRequest)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a request to inject the static fields and methods of type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.TypeConverterBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a> typeConverterBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a registration of type converters for matching target types.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.TypeListenerBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a> binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an injectable type listener binding.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="visitOther(com.google.inject.spi.Element)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visitOther</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/Element.html">Element</a> element)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Default visit implementation. Returns <code>null</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/Dependency.html b/javadoc/com/google/inject/spi/Dependency.html
deleted file mode 100755
index f2630b2..0000000
--- a/javadoc/com/google/inject/spi/Dependency.html
+++ /dev/null
@@ -1,1210 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Dependency
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>Dependency</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.Dependency&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A variable that can be resolved by an injector.
-
- <p>Use <code><a href="../../../../com/google/inject/spi/Dependency.html#get(com.google.inject.Key<T>)">get(Key<T>)</a></code> to build a freestanding dependency, or <code><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></code> to build one
- that's attached to a constructor, method or field.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Dependency.html#equals(java.lang.Object)">equals</a></span>(Object o)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Dependency.html#forInjectionPoints(java.util.Set<com.google.inject.spi.InjectionPoint>)">forInjectionPoints</a></span>(Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt; injectionPoints)</nobr>
-        
-        <div class="jd-descrdiv">Returns the dependencies from the given injection points.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Dependency.html#get(com.google.inject.Key<T>)">get</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new dependency that is not attached to an injection point.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Dependency.html#getInjectionPoint()">getInjectionPoint</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the injection point to which this dependency belongs, or null if this dependency isn't
- attached to a particular injection point.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Dependency.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key to the binding that satisfies this dependency.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Dependency.html#getParameterIndex()">getParameterIndex</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the index of this dependency in the injection point's parameter list, or <code>-1</code> if
- this dependency does not belong to a parameter list.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Dependency.html#hashCode()">hashCode</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Dependency.html#isNullable()">isNullable</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns true if null is a legal value for this dependency.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Dependency.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="equals(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        boolean
-      </span>
-      <span class="sympad">equals</span>
-      <span class="normal">(Object o)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="forInjectionPoints(java.util.Set<com.google.inject.spi.InjectionPoint>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">forInjectionPoints</span>
-      <span class="normal">(Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt; injectionPoints)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the dependencies from the given injection points.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new dependency that is not attached to an injection point. The returned dependency is
- nullable.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getInjectionPoint()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>
-      </span>
-      <span class="sympad">getInjectionPoint</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the injection point to which this dependency belongs, or null if this dependency isn't
- attached to a particular injection point.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getKey()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the key to the binding that satisfies this dependency.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getParameterIndex()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        int
-      </span>
-      <span class="sympad">getParameterIndex</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the index of this dependency in the injection point's parameter list, or <code>-1</code> if
- this dependency does not belong to a parameter list. Only method and constuctor dependencies
- are elements in a parameter list.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="hashCode()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        int
-      </span>
-      <span class="sympad">hashCode</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="isNullable()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        boolean
-      </span>
-      <span class="sympad">isNullable</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if null is a legal value for this dependency.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/DisableCircularProxiesOption.html b/javadoc/com/google/inject/spi/DisableCircularProxiesOption.html
deleted file mode 100755
index 9a7698e..0000000
--- a/javadoc/com/google/inject/spi/DisableCircularProxiesOption.html
+++ /dev/null
@@ -1,1014 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  DisableCircularProxiesOption
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>DisableCircularProxiesOption</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.DisableCircularProxiesOption</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A request to disable circular proxies.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/Element.html b/javadoc/com/google/inject/spi/Element.html
deleted file mode 100755
index 1c467ed..0000000
--- a/javadoc/com/google/inject/spi/Element.html
+++ /dev/null
@@ -1,898 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Element
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>Element</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.Element</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-            
-              
-                <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a>,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a>,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/Message.html">Message</a>,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a>,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;,
-              
-              and
-                <a href="#" onclick="return toggleInherited(document.getElementById('subclasses-indirect', null))">7 others.</a>
-              
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A mapping from a key (type and optional annotation) to the strategy for getting instances of the
- type.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to the constructor of a concrete clss.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding created from converting a bound instance to a new type.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></td>
-              <td class="jd-descrcol" width="100%">A request to disable circular proxies.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a key exposed from an enclosed private environment.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A request to inject the instance fields and methods of an instance.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a single instance.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></td>
-              <td class="jd-descrcol" width="100%">Registration of interceptors for matching methods of matching classes.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a linked key.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A lookup of the members injector for a type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/Message.html">Message</a></td>
-              <td class="jd-descrcol" width="100%">An error message and the context in which it occured.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></td>
-              <td class="jd-descrcol" width="100%">A private collection of elements that are hidden from the enclosing injector or module by
- default.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the provided type.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a provider instance.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a provider key.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A lookup of the provider for a type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></td>
-              <td class="jd-descrcol" width="100%">A request to require explicit bindings.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></td>
-              <td class="jd-descrcol" width="100%">Registration of a scope annotation with the scope that implements it.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></td>
-              <td class="jd-descrcol" width="100%">A request to inject the static fields and methods of a type.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></td>
-              <td class="jd-descrcol" width="100%">Registration of type converters for matching target types.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></td>
-              <td class="jd-descrcol" width="100%">Binds types (picked using a Matcher) to an type listener.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">An untargetted binding.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A core component of a module or injector.
-
- <p>The elements of a module can be inspected, validated and rewritten. Use <code><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Module...)">Elements.getElements()</a></code> to read the elements
- from a module, and <code><a href="../../../../com/google/inject/spi/Elements.html#getModule(java.lang.Iterable<? extends com.google.inject.spi.Element>)">Elements.getModule()</a></code> to rewrite them.
- This can be used for static analysis and generation of Guice modules.
-
- <p>The elements of an injector can be inspected and exercised. Use <code><a href="../../../../com/google/inject/Injector.html#getBindings()">Injector.getBindings()</a></code> to reflect on Guice injectors.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>UnsupportedOperationException</td>
-            <td>if the <code>applyTo</code> method is not supported by this
-     element.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/ElementVisitor.html b/javadoc/com/google/inject/spi/ElementVisitor.html
deleted file mode 100755
index f2ed4ba..0000000
--- a/javadoc/com/google/inject/spi/ElementVisitor.html
+++ /dev/null
@@ -1,1216 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ElementVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ElementVisitor</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ElementVisitor&lt;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</td>
-              <td class="jd-descrcol" width="100%">No-op visitor for subclassing.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Visit elements.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.Binding<T>)">visit</a></span>(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a mapping from a key (type and optional annotation) to the strategy for getting
- instances of the type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.DisableCircularProxiesOption)">visit</a></span>(<a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a> option)</nobr>
-        
-        <div class="jd-descrdiv">Visit a disable circular proxies command.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.InjectionRequest<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;?&gt; request)</nobr>
-        
-        <div class="jd-descrdiv">Visit a request to inject the instance fields and methods of an instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.InterceptorBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a registration of interceptors for matching methods of matching classes.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.MembersInjectorLookup<T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt; lookup)</nobr>
-        
-        <div class="jd-descrdiv">Visit a lookup of the members injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.Message)">visit</a></span>(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-        <div class="jd-descrdiv">Visit an error message and the context in which it occured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.PrivateElements)">visit</a></span>(<a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a> elements)</nobr>
-        
-        <div class="jd-descrdiv">Visit a collection of configuration elements for a <code><a href="../../../../com/google/inject/PrivateBinder.html">private binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.ProviderLookup<T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt; lookup)</nobr>
-        
-        <div class="jd-descrdiv">Visit a lookup of the provider for a type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.RequireExplicitBindingsOption)">visit</a></span>(<a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a> option)</nobr>
-        
-        <div class="jd-descrdiv">Visit a require explicit bindings command.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.ScopeBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a registration of a scope annotation with the scope that implements it.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.StaticInjectionRequest)">visit</a></span>(<a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a> request)</nobr>
-        
-        <div class="jd-descrdiv">Visit a request to inject the static fields and methods of type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.TypeConverterBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a registration of type converters for matching target types.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.TypeListenerBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an injectable type listener binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visit(com.google.inject.Binding<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a mapping from a key (type and optional annotation) to the strategy for getting
- instances of the type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.DisableCircularProxiesOption)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a> option)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a disable circular proxies command.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.InjectionRequest<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;?&gt; request)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a request to inject the instance fields and methods of an instance.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.InterceptorBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a> binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a registration of interceptors for matching methods of matching classes.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.MembersInjectorLookup<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt; lookup)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a lookup of the members injector.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.Message)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an error message and the context in which it occured.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.PrivateElements)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a> elements)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a collection of configuration elements for a <code><a href="../../../../com/google/inject/PrivateBinder.html">private binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderLookup<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt; lookup)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a lookup of the provider for a type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.RequireExplicitBindingsOption)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a> option)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a require explicit bindings command.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ScopeBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a> binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a registration of a scope annotation with the scope that implements it.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.StaticInjectionRequest)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a> request)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a request to inject the static fields and methods of type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.TypeConverterBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a> binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a registration of type converters for matching target types.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.TypeListenerBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a> binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an injectable type listener binding.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/Elements.html b/javadoc/com/google/inject/spi/Elements.html
deleted file mode 100755
index b9f3d7b..0000000
--- a/javadoc/com/google/inject/spi/Elements.html
+++ /dev/null
@@ -1,1070 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Elements
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>Elements</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.Elements</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Exposes elements of a module so they can be inspected, validated or <code><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">rewritten</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Elements.html#Elements()">Elements</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Module...)">getElements</a></span>(<a href="../../../../com/google/inject/Module.html">Module...</a> modules)</nobr>
-        
-        <div class="jd-descrdiv">Records the elements executed by <code>modules</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Stage, com.google.inject.Module...)">getElements</a></span>(<a href="../../../../com/google/inject/Stage.html">Stage</a> stage, <a href="../../../../com/google/inject/Module.html">Module...</a> modules)</nobr>
-        
-        <div class="jd-descrdiv">Records the elements executed by <code>modules</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Stage, java.lang.Iterable<? extends com.google.inject.Module>)">getElements</a></span>(<a href="../../../../com/google/inject/Stage.html">Stage</a> stage, Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; modules)</nobr>
-        
-        <div class="jd-descrdiv">Records the elements executed by <code>modules</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Elements.html#getElements(java.lang.Iterable<? extends com.google.inject.Module>)">getElements</a></span>(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; modules)</nobr>
-        
-        <div class="jd-descrdiv">Records the elements executed by <code>modules</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/Module.html">Module</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Elements.html#getModule(java.lang.Iterable<? extends com.google.inject.spi.Element>)">getModule</a></span>(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt; elements)</nobr>
-        
-        <div class="jd-descrdiv">Returns the module composed of <code>elements</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="Elements()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">Elements</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getElements(com.google.inject.Module...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;
-      </span>
-      <span class="sympad">getElements</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Module.html">Module...</a> modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records the elements executed by <code>modules</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getElements(com.google.inject.Stage, com.google.inject.Module...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;
-      </span>
-      <span class="sympad">getElements</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Stage.html">Stage</a> stage, <a href="../../../../com/google/inject/Module.html">Module...</a> modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records the elements executed by <code>modules</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getElements(com.google.inject.Stage, java.lang.Iterable<? extends com.google.inject.Module>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;
-      </span>
-      <span class="sympad">getElements</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Stage.html">Stage</a> stage, Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records the elements executed by <code>modules</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getElements(java.lang.Iterable<? extends com.google.inject.Module>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;
-      </span>
-      <span class="sympad">getElements</span>
-      <span class="normal">(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records the elements executed by <code>modules</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getModule(java.lang.Iterable<? extends com.google.inject.spi.Element>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-      <span class="sympad">getModule</span>
-      <span class="normal">(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt; elements)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the module composed of <code>elements</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/ExposedBinding.html b/javadoc/com/google/inject/spi/ExposedBinding.html
deleted file mode 100755
index 1c72e69..0000000
--- a/javadoc/com/google/inject/spi/ExposedBinding.html
+++ /dev/null
@@ -1,884 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ExposedBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ExposedBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; 
-      
-        <a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ExposedBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding to a key exposed from an enclosed private environment.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ExposedBinding.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Unsupported.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ExposedBinding.html#getPrivateElements()">getPrivateElements</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the enclosed environment that holds the original binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Binding.html">com.google.inject.Binding</a>
-
-<div id="inherited-methods-com.google.inject.Binding">
-  <div id="inherited-methods-com.google.inject.Binding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.HasDependencies" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.HasDependencies-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/HasDependencies.html">com.google.inject.spi.HasDependencies</a>
-
-<div id="inherited-methods-com.google.inject.spi.HasDependencies">
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/HasDependencies.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the known dependencies for this type.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Unsupported. Always throws UnsupportedOperationException.
-</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getPrivateElements()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a>
-      </span>
-      <span class="sympad">getPrivateElements</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the enclosed environment that holds the original binding.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/HasDependencies.html b/javadoc/com/google/inject/spi/HasDependencies.html
deleted file mode 100755
index f0d1378..0000000
--- a/javadoc/com/google/inject/spi/HasDependencies.html
+++ /dev/null
@@ -1,638 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  HasDependencies
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>HasDependencies</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.HasDependencies</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;,
-            
-              <a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;,
-            
-              <a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;,
-            
-              <a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;,
-            
-              <a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;,
-            
-              <a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;,
-            
-              <a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to the constructor of a concrete clss.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding created from converting a bound instance to a new type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a key exposed from an enclosed private environment.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</td>
-              <td class="jd-descrcol" width="100%">
-      <em>
-  This class is deprecated.
-      use <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code> instead.
-</em>&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a single instance.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a provider instance.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A provider with dependencies on other injected types.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Implemented by <code><a href="../../../../com/google/inject/Binding.html">bindings</a></code>, <code><a href="../../../../com/google/inject/Provider.html">providers</a></code> and instances that expose their dependencies explicitly.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/HasDependencies.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the known dependencies for this type.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getDependencies()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getDependencies</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the known dependencies for this type. If this has dependencies whose values are not
- known statically, a dependency for the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> will be
- included in the returned set.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/InjectionListener.html b/javadoc/com/google/inject/spi/InjectionListener.html
deleted file mode 100755
index 021a010..0000000
--- a/javadoc/com/google/inject/spi/InjectionListener.html
+++ /dev/null
@@ -1,552 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InjectionListener
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>InjectionListener</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.InjectionListener&lt;I&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Listens for injections into instances of type <code>I</code>. Useful for performing further
- injections, post-injection initialization, and more.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionListener.html#afterInjection(I)">afterInjection</a></span>(I injectee)</nobr>
-        
-        <div class="jd-descrdiv">Invoked by Guice after it injects the fields and methods of instance.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="afterInjection(I)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">afterInjection</span>
-      <span class="normal">(I injectee)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Invoked by Guice after it injects the fields and methods of instance.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>injectee</td>
-          <td>instance that Guice injected dependencies into
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/InjectionPoint.html b/javadoc/com/google/inject/spi/InjectionPoint.html
deleted file mode 100755
index dceaf98..0000000
--- a/javadoc/com/google/inject/spi/InjectionPoint.html
+++ /dev/null
@@ -1,1707 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InjectionPoint
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>InjectionPoint</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.InjectionPoint</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A constructor, field or method that can receive injections. Typically this is a member with the
- @<code><a href="../../../../com/google/inject/Inject.html">Inject</a></code> annotation. For non-private, no argument constructors, the member may
- omit the annotation.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#equals(java.lang.Object)">equals</a></span>(Object o)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#forConstructor(java.lang.reflect.Constructor<T>)">forConstructor</a></span>(Constructor&lt;T&gt; constructor)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new injection point for the specified constructor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#forConstructor(java.lang.reflect.Constructor<T>, com.google.inject.TypeLiteral<? extends T>)">forConstructor</a></span>(Constructor&lt;T&gt; constructor, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new injection point for the specified constructor of <code>type</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#forConstructorOf(com.google.inject.TypeLiteral<?>)">forConstructorOf</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new injection point for the injectable constructor of <code>type</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#forConstructorOf(java.lang.Class<?>)">forConstructorOf</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new injection point for the injectable constructor of <code>type</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#forInstanceMethodsAndFields(com.google.inject.TypeLiteral<?>)">forInstanceMethodsAndFields</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns all instance method and field injection points on <code>type</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#forInstanceMethodsAndFields(java.lang.Class<?>)">forInstanceMethodsAndFields</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns all instance method and field injection points on <code>type</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#forStaticMethodsAndFields(com.google.inject.TypeLiteral<?>)">forStaticMethodsAndFields</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns all static method and field injection points on <code>type</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#forStaticMethodsAndFields(java.lang.Class<?>)">forStaticMethodsAndFields</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns all static method and field injection points on <code>type</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#getDeclaringType()">getDeclaringType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the generic type that defines this injection point.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            List&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the dependencies for this injection point.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Member</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#getMember()">getMember</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the injected constructor, field, or method.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#hashCode()">hashCode</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#isOptional()">isOptional</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns true if this injection point shall be skipped if the injector cannot resolve bindings
- for all required dependencies.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#isToolable()">isToolable</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns true if the element is annotated with @<code><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="equals(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        boolean
-      </span>
-      <span class="sympad">equals</span>
-      <span class="normal">(Object o)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="forConstructor(java.lang.reflect.Constructor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>
-      </span>
-      <span class="sympad">forConstructor</span>
-      <span class="normal">(Constructor&lt;T&gt; constructor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new injection point for the specified constructor. If the declaring type of <code>constructor</code> is parameterized (such as <code>List&lt;T&gt;</code>), prefer the overload that includes a
- type literal.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>constructor</td>
-          <td>any single constructor present on <code>type</code>.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="forConstructor(java.lang.reflect.Constructor<T>, com.google.inject.TypeLiteral<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>
-      </span>
-      <span class="sympad">forConstructor</span>
-      <span class="normal">(Constructor&lt;T&gt; constructor, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new injection point for the specified constructor of <code>type</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>constructor</td>
-          <td>any single constructor present on <code>type</code>.</td>
-        </tr>
-        <tr>
-          <th>type</td>
-          <td>the concrete type that defines <code>constructor</code>.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="forConstructorOf(com.google.inject.TypeLiteral<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>
-      </span>
-      <span class="sympad">forConstructorOf</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new injection point for the injectable constructor of <code>type</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>type</td>
-          <td>a concrete type with exactly one constructor annotated @<code><a href="../../../../com/google/inject/Inject.html">Inject</a></code>,
-     or a no-arguments constructor that is not private.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if there is no injectable constructor, more than one injectable
-     constructor, or if parameters of the injectable constructor are malformed, such as a
-     parameter with multiple binding annotations.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="forConstructorOf(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>
-      </span>
-      <span class="sympad">forConstructorOf</span>
-      <span class="normal">(Class&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new injection point for the injectable constructor of <code>type</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>type</td>
-          <td>a concrete type with exactly one constructor annotated @<code><a href="../../../../com/google/inject/Inject.html">Inject</a></code>,
-     or a no-arguments constructor that is not private.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if there is no injectable constructor, more than one injectable
-     constructor, or if parameters of the injectable constructor are malformed, such as a
-     parameter with multiple binding annotations.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="forInstanceMethodsAndFields(com.google.inject.TypeLiteral<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;
-      </span>
-      <span class="sympad">forInstanceMethodsAndFields</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns all instance method and field injection points on <code>type</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set of injection points. The set has a specified iteration order. All
-      fields are returned and then all methods. Within the fields, supertype fields are returned
-      before subtype fields. Similarly, supertype methods are returned before subtype methods.</li></ul>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if there is a malformed injection point on <code>type</code>, such as
-      a field with multiple binding annotations. The exception's <code><a href="../../../../com/google/inject/ConfigurationException.html#getPartialValue()">partial value</a></code> is a <code>Set&lt;InjectionPoint&gt;</code>
-      of the valid injection points.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="forInstanceMethodsAndFields(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;
-      </span>
-      <span class="sympad">forInstanceMethodsAndFields</span>
-      <span class="normal">(Class&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns all instance method and field injection points on <code>type</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set of injection points. The set has a specified iteration order. All
-      fields are returned and then all methods. Within the fields, supertype fields are returned
-      before subtype fields. Similarly, supertype methods are returned before subtype methods.</li></ul>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if there is a malformed injection point on <code>type</code>, such as
-      a field with multiple binding annotations. The exception's <code><a href="../../../../com/google/inject/ConfigurationException.html#getPartialValue()">partial value</a></code> is a <code>Set&lt;InjectionPoint&gt;</code>
-      of the valid injection points.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="forStaticMethodsAndFields(com.google.inject.TypeLiteral<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;
-      </span>
-      <span class="sympad">forStaticMethodsAndFields</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns all static method and field injection points on <code>type</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set of injection points. The set has a specified iteration order. All
-      fields are returned and then all methods. Within the fields, supertype fields are returned
-      before subtype fields. Similarly, supertype methods are returned before subtype methods.</li></ul>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if there is a malformed injection point on <code>type</code>, such as
-      a field with multiple binding annotations. The exception's <code><a href="../../../../com/google/inject/ConfigurationException.html#getPartialValue()">partial value</a></code> is a <code>Set&lt;InjectionPoint&gt;</code>
-      of the valid injection points.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="forStaticMethodsAndFields(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;
-      </span>
-      <span class="sympad">forStaticMethodsAndFields</span>
-      <span class="normal">(Class&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns all static method and field injection points on <code>type</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set of injection points. The set has a specified iteration order. All
-      fields are returned and then all methods. Within the fields, supertype fields are returned
-      before subtype fields. Similarly, supertype methods are returned before subtype methods.</li></ul>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if there is a malformed injection point on <code>type</code>, such as
-      a field with multiple binding annotations. The exception's <code><a href="../../../../com/google/inject/ConfigurationException.html#getPartialValue()">partial value</a></code> is a <code>Set&lt;InjectionPoint&gt;</code>
-      of the valid injection points.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getDeclaringType()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;
-      </span>
-      <span class="sympad">getDeclaringType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the generic type that defines this injection point. If the member exists on a
- parameterized type, the result will include more type information than the member's <code><a href="null#getDeclaringClass()">raw declaring class</a></code>.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getDependencies()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        List&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getDependencies</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the dependencies for this injection point. If the injection point is for a method or
- constructor, the dependencies will correspond to that member's parameters. Field injection
- points always have a single dependency for the field itself.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly-empty list
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMember()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Member
-      </span>
-      <span class="sympad">getMember</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the injected constructor, field, or method.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="hashCode()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        int
-      </span>
-      <span class="sympad">hashCode</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="isOptional()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        boolean
-      </span>
-      <span class="sympad">isOptional</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if this injection point shall be skipped if the injector cannot resolve bindings
- for all required dependencies. Both explicit bindings (as specified in a module), and implicit
- bindings (@<code><a href="../../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></code>, default
- constructors etc.) may be used to satisfy optional injection points.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="isToolable()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        boolean
-      </span>
-      <span class="sympad">isToolable</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if the element is annotated with @<code><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></code>.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/InjectionRequest.html b/javadoc/com/google/inject/spi/InjectionRequest.html
deleted file mode 100755
index b1c6391..0000000
--- a/javadoc/com/google/inject/spi/InjectionRequest.html
+++ /dev/null
@@ -1,1241 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InjectionRequest
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>InjectionRequest</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.InjectionRequest&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A request to inject the instance fields and methods of an instance. Requests are created
- explicitly in a module using <code><a href="../../../../com/google/inject/Binder.html#requestInjection(java.lang.Object)">requestInjection()</a></code> statements:
- <pre>
-     requestInjection(serviceInstance);</pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionRequest.html#InjectionRequest(java.lang.Object, com.google.inject.TypeLiteral<T>, T)">InjectionRequest</a></span>(Object source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type, T instance)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;R&gt;
-            R</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionRequest.html#acceptVisitor(com.google.inject.spi.ElementVisitor<R>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;R&gt; visitor)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionRequest.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionRequest.html#getInjectionPoints()">getInjectionPoints</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the instance methods and fields of <code>instance</code> that will be injected to fulfill
- this request.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionRequest.html#getInstance()">getInstance</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionRequest.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionRequest.html#getType()">getType</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="InjectionRequest(java.lang.Object, com.google.inject.TypeLiteral<T>, T)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">InjectionRequest</span>
-      <span class="normal">(Object source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type, T instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<R>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        R
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;R&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getInjectionPoints()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;
-      </span>
-      <span class="sympad">getInjectionPoints</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the instance methods and fields of <code>instance</code> that will be injected to fulfill
- this request.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set of injection points. The set has a specified iteration order. All
-      fields are returned and then all methods. Within the fields, supertype fields are returned
-      before subtype fields. Similarly, supertype methods are returned before subtype methods.</li></ul>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if there is a malformed injection point on the class of <code>instance</code>, such as a field with multiple binding annotations. The exception's <code><a href="../../../../com/google/inject/ConfigurationException.html#getPartialValue()">partial value</a></code> is a <code>Set&lt;InjectionPoint&gt;</code>
-      of the valid injection points.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getInstance()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">getInstance</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getType()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/InstanceBinding.html b/javadoc/com/google/inject/spi/InstanceBinding.html
deleted file mode 100755
index 56d9289..0000000
--- a/javadoc/com/google/inject/spi/InstanceBinding.html
+++ /dev/null
@@ -1,881 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InstanceBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>InstanceBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; 
-      
-        <a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.InstanceBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding to a single instance. The same instance is returned for every injection.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InstanceBinding.html#getInjectionPoints()">getInjectionPoints</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the field and method injection points of the instance, injected at injector-creation
- time only.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InstanceBinding.html#getInstance()">getInstance</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the user-supplied instance.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Binding.html">com.google.inject.Binding</a>
-
-<div id="inherited-methods-com.google.inject.Binding">
-  <div id="inherited-methods-com.google.inject.Binding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.HasDependencies" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.HasDependencies-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/HasDependencies.html">com.google.inject.spi.HasDependencies</a>
-
-<div id="inherited-methods-com.google.inject.spi.HasDependencies">
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/HasDependencies.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the known dependencies for this type.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getInjectionPoints()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;
-      </span>
-      <span class="sympad">getInjectionPoints</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the field and method injection points of the instance, injected at injector-creation
- time only.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getInstance()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">getInstance</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the user-supplied instance.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/InterceptorBinding.html b/javadoc/com/google/inject/spi/InterceptorBinding.html
deleted file mode 100755
index 28e39cd..0000000
--- a/javadoc/com/google/inject/spi/InterceptorBinding.html
+++ /dev/null
@@ -1,1168 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InterceptorBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>InterceptorBinding</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.InterceptorBinding</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Registration of interceptors for matching methods of matching classes. Instances are created
- explicitly in a module using <code><a href="../../../../com/google/inject/Binder.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor()</a></code> statements:
- <pre>
-     bindInterceptor(Matchers.subclassesOf(MyAction.class),
-         Matchers.annotatedWith(Transactional.class),
-         new MyTransactionInterceptor());</pre>
-
- or from an injectable type listener using <code><a href="../../../../com/google/inject/spi/TypeEncounter.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">TypeEncounter.bindInterceptor()</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InterceptorBinding.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InterceptorBinding.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InterceptorBinding.html#getClassMatcher()">getClassMatcher</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            List&lt;MethodInterceptor&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InterceptorBinding.html#getInterceptors()">getInterceptors</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InterceptorBinding.html#getMethodMatcher()">getMethodMatcher</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InterceptorBinding.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getClassMatcher()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getClassMatcher</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getInterceptors()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        List&lt;MethodInterceptor&gt;
-      </span>
-      <span class="sympad">getInterceptors</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMethodMatcher()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt;
-      </span>
-      <span class="sympad">getMethodMatcher</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/LinkedKeyBinding.html b/javadoc/com/google/inject/spi/LinkedKeyBinding.html
deleted file mode 100755
index 3d95161..0000000
--- a/javadoc/com/google/inject/spi/LinkedKeyBinding.html
+++ /dev/null
@@ -1,771 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  LinkedKeyBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>LinkedKeyBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.LinkedKeyBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding to a linked key. The other key's binding is used to resolve injections.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html#getLinkedKey()">getLinkedKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the linked key used to resolve injections.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Binding.html">com.google.inject.Binding</a>
-
-<div id="inherited-methods-com.google.inject.Binding">
-  <div id="inherited-methods-com.google.inject.Binding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getLinkedKey()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;T&gt;
-      </span>
-      <span class="sympad">getLinkedKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the linked key used to resolve injections. That binding can be retrieved from an
- injector using <code><a href="../../../../com/google/inject/Injector.html#getBinding(com.google.inject.Key<T>)">Injector.getBinding(key)</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/MembersInjectorLookup.html b/javadoc/com/google/inject/spi/MembersInjectorLookup.html
deleted file mode 100755
index 8f36488..0000000
--- a/javadoc/com/google/inject/spi/MembersInjectorLookup.html
+++ /dev/null
@@ -1,1307 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  MembersInjectorLookup
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>MembersInjectorLookup</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.MembersInjectorLookup&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A lookup of the members injector for a type. Lookups are created explicitly in a module using
- <code><a href="../../../../com/google/inject/Binder.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector()</a></code> statements:
- <pre>
-     MembersInjector&lt;PaymentService&gt; membersInjector
-         = getMembersInjector(PaymentService.class);</pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html#MembersInjectorLookup(java.lang.Object, com.google.inject.TypeLiteral<T>)">MembersInjectorLookup</a></span>(Object source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html#getDelegate()">getDelegate</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the delegate members injector, or <code>null</code> if it has not yet been initialized.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html#getMembersInjector()">getMembersInjector</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the looked up members injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html#getType()">getType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the type containing the members to be injected.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html#initializeDelegate(com.google.inject.MembersInjector<T>)">initializeDelegate</a></span>(<a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt; delegate)</nobr>
-        
-        <div class="jd-descrdiv">Sets the actual members injector.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="MembersInjectorLookup(java.lang.Object, com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">MembersInjectorLookup</span>
-      <span class="normal">(Object source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getDelegate()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getDelegate</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the delegate members injector, or <code>null</code> if it has not yet been initialized.
- The delegate will be initialized when this element is processed, or otherwise used to create
- an injector.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the looked up members injector. The result is not valid until this lookup has been
- initialized, which usually happens when the injector is created. The members injector will
- throw an <code>IllegalStateException</code> if you try to use it beforehand.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getType()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the type containing the members to be injected.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="initializeDelegate(com.google.inject.MembersInjector<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">initializeDelegate</span>
-      <span class="normal">(<a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt; delegate)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Sets the actual members injector.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>IllegalStateException</td>
-            <td>if the delegate is already set
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/Message.html b/javadoc/com/google/inject/spi/Message.html
deleted file mode 100755
index 1fb044c..0000000
--- a/javadoc/com/google/inject/spi/Message.html
+++ /dev/null
@@ -1,1497 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Message
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>Message</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-        Serializable 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.Message</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>An error message and the context in which it occured. Messages are usually created internally by
- Guice and its extensions. Messages can be created explicitly in a module using <code><a href="../../../../com/google/inject/Binder.html#addError(java.lang.Throwable)">addError()</a></code> statements:
- <pre>
-     try {
-       bindPropertiesFromFile();
-     } catch (IOException e) {
-       addError(e);
-     }</pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#Message(java.lang.Object, java.lang.String)">Message</a></span>(Object source, String message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#Message(java.lang.String)">Message</a></span>(String message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#Message(java.util.List<java.lang.Object>, java.lang.String, java.lang.Throwable)">Message</a></span>(List&lt;Object&gt; sources, String message, Throwable cause)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#equals(java.lang.Object)">equals</a></span>(Object o)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#getCause()">getCause</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the throwable that caused this message, or <code>null</code> if this
- message was not caused by a throwable.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#getMessage()">getMessage</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the error message text.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            List&lt;Object&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#getSources()">getSources</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#hashCode()">hashCode</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="Message(java.lang.Object, java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">Message</span>
-      <span class="normal">(Object source, String message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="Message(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">Message</span>
-      <span class="normal">(String message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="Message(java.util.List<java.lang.Object>, java.lang.String, java.lang.Throwable)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">Message</span>
-      <span class="normal">(List&lt;Object&gt; sources, String message, Throwable cause)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="equals(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        boolean
-      </span>
-      <span class="sympad">equals</span>
-      <span class="normal">(Object o)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getCause()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Throwable
-      </span>
-      <span class="sympad">getCause</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the throwable that caused this message, or <code>null</code> if this
- message was not caused by a throwable.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMessage()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getMessage</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the error message text.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSources()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        List&lt;Object&gt;
-      </span>
-      <span class="sympad">getSources</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="hashCode()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        int
-      </span>
-      <span class="sympad">hashCode</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/PrivateElements.html b/javadoc/com/google/inject/spi/PrivateElements.html
deleted file mode 100755
index 7e70b69..0000000
--- a/javadoc/com/google/inject/spi/PrivateElements.html
+++ /dev/null
@@ -1,838 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  PrivateElements
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>PrivateElements</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.PrivateElements</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A private collection of elements that are hidden from the enclosing injector or module by
- default. See <code><a href="../../../../com/google/inject/PrivateModule.html">PrivateModule</a></code> for details.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/PrivateElements.html#getElements()">getElements</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the configuration information in this private environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/PrivateElements.html#getExposedKeys()">getExposedKeys</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the unique exposed keys for these private elements.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/PrivateElements.html#getExposedSource(com.google.inject.Key<?>)">getExposedSource</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this key was
- exposed.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Injector.html">Injector</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/PrivateElements.html#getInjector()">getInjector</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the child injector that hosts these private elements, or null if the elements haven't
- been used to create an injector.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getElements()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;
-      </span>
-      <span class="sympad">getElements</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the configuration information in this private environment.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getExposedKeys()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Set&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getExposedKeys</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the unique exposed keys for these private elements.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getExposedSource(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Object
-      </span>
-      <span class="sympad">getExposedSource</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this key was
- exposed. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>key</td>
-          <td>one of the keys exposed by this module.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getInjector()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Injector.html">Injector</a>
-      </span>
-      <span class="sympad">getInjector</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the child injector that hosts these private elements, or null if the elements haven't
- been used to create an injector.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/ProviderBinding.html b/javadoc/com/google/inject/spi/ProviderBinding.html
deleted file mode 100755
index c2052d6..0000000
--- a/javadoc/com/google/inject/spi/ProviderBinding.html
+++ /dev/null
@@ -1,772 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ProviderBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ProviderBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ProviderBinding&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">com.google.inject.Provider</a>&lt;?&gt;&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the provided type. This binding
- is used whenever a <code>Provider&lt;T&gt;</code> is injected (as opposed to injecting <code>T</code> directly).</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderBinding.html#getProvidedKey()">getProvidedKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key whose binding is used to <code><a href="../../../../com/google/inject/Provider.html#get()">provide instances</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Binding.html">com.google.inject.Binding</a>
-
-<div id="inherited-methods-com.google.inject.Binding">
-  <div id="inherited-methods-com.google.inject.Binding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getProvidedKey()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;
-      </span>
-      <span class="sympad">getProvidedKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the key whose binding is used to <code><a href="../../../../com/google/inject/Provider.html#get()">provide instances</a></code>. That binding
- can be retrieved from an injector using <code><a href="../../../../com/google/inject/Injector.html#getBinding(com.google.inject.Key<T>)">Injector.getBinding(providedKey)</a></code>
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/ProviderInstanceBinding.html b/javadoc/com/google/inject/spi/ProviderInstanceBinding.html
deleted file mode 100755
index 3866210..0000000
--- a/javadoc/com/google/inject/spi/ProviderInstanceBinding.html
+++ /dev/null
@@ -1,882 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ProviderInstanceBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ProviderInstanceBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; 
-      
-        <a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ProviderInstanceBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding to a provider instance. The provider's <code>get</code> method is invoked to resolve
- injections.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html#getInjectionPoints()">getInjectionPoints</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the field and method injection points of the provider, injected at injector-creation
- time only.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&nbsp;extends&nbsp;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html#getProviderInstance()">getProviderInstance</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the user-supplied, unscoped provider.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Binding.html">com.google.inject.Binding</a>
-
-<div id="inherited-methods-com.google.inject.Binding">
-  <div id="inherited-methods-com.google.inject.Binding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.HasDependencies" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.HasDependencies-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/HasDependencies.html">com.google.inject.spi.HasDependencies</a>
-
-<div id="inherited-methods-com.google.inject.spi.HasDependencies">
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/HasDependencies.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the known dependencies for this type.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getInjectionPoints()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;
-      </span>
-      <span class="sympad">getInjectionPoints</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the field and method injection points of the provider, injected at injector-creation
- time only.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getProviderInstance()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&nbsp;extends&nbsp;T&gt;
-      </span>
-      <span class="sympad">getProviderInstance</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the user-supplied, unscoped provider.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/ProviderKeyBinding.html b/javadoc/com/google/inject/spi/ProviderKeyBinding.html
deleted file mode 100755
index 03a205e..0000000
--- a/javadoc/com/google/inject/spi/ProviderKeyBinding.html
+++ /dev/null
@@ -1,772 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ProviderKeyBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ProviderKeyBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ProviderKeyBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding to a provider key. To resolve injections, the provider key is first resolved, then that
- provider's <code>get</code> method is invoked.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html#getProviderKey()">getProviderKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key used to resolve the provider's binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Binding.html">com.google.inject.Binding</a>
-
-<div id="inherited-methods-com.google.inject.Binding">
-  <div id="inherited-methods-com.google.inject.Binding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getProviderKey()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt;
-      </span>
-      <span class="sympad">getProviderKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the key used to resolve the provider's binding. That binding can be retrieved from an
- injector using <code><a href="../../../../com/google/inject/Injector.html#getBinding(com.google.inject.Key<T>)">Injector.getBinding(providerKey)</a></code>
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/ProviderLookup.html b/javadoc/com/google/inject/spi/ProviderLookup.html
deleted file mode 100755
index d1a0bbb..0000000
--- a/javadoc/com/google/inject/spi/ProviderLookup.html
+++ /dev/null
@@ -1,1302 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ProviderLookup
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>ProviderLookup</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ProviderLookup&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A lookup of the provider for a type. Lookups are created explicitly in a module using
- <code><a href="../../../../com/google/inject/Binder.html#getProvider(java.lang.Class<T>)">getProvider()</a></code> statements:
- <pre>
-     Provider&lt;PaymentService&gt; paymentServiceProvider
-         = getProvider(PaymentService.class);</pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderLookup.html#ProviderLookup(java.lang.Object, com.google.inject.Key<T>)">ProviderLookup</a></span>(Object source, <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderLookup.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderLookup.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderLookup.html#getDelegate()">getDelegate</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the delegate provider, or <code>null</code> if it has not yet been initialized.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderLookup.html#getKey()">getKey</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderLookup.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the looked up provider.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderLookup.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderLookup.html#initializeDelegate(com.google.inject.Provider<T>)">initializeDelegate</a></span>(<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt; delegate)</nobr>
-        
-        <div class="jd-descrdiv">Sets the actual provider.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="ProviderLookup(java.lang.Object, com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ProviderLookup</span>
-      <span class="normal">(Object source, <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getDelegate()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getDelegate</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the delegate provider, or <code>null</code> if it has not yet been initialized. The delegate
- will be initialized when this element is processed, or otherwise used to create an injector.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getKey()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the looked up provider. The result is not valid until this lookup has been initialized,
- which usually happens when the injector is created. The provider will throw an <code>IllegalStateException</code> if you try to use it beforehand.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="initializeDelegate(com.google.inject.Provider<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">initializeDelegate</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt; delegate)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Sets the actual provider.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>IllegalStateException</td>
-            <td>if the delegate is already set
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/ProviderWithDependencies.html b/javadoc/com/google/inject/spi/ProviderWithDependencies.html
deleted file mode 100755
index 7cbf5cc..0000000
--- a/javadoc/com/google/inject/spi/ProviderWithDependencies.html
+++ /dev/null
@@ -1,661 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ProviderWithDependencies
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ProviderWithDependencies</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt; 
-      
-        <a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ProviderWithDependencies&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A provider with dependencies on other injected types. If a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> has dependencies that
- aren't specified in injections, this interface should be used to expose all dependencies.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Provider" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Provider-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Provider.html">com.google.inject.Provider</a>
-
-<div id="inherited-methods-com.google.inject.Provider">
-  <div id="inherited-methods-com.google.inject.Provider-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Provider-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Provider.html#get()">get</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Provides an instance of <code>T</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.HasDependencies" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.HasDependencies-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/HasDependencies.html">com.google.inject.spi.HasDependencies</a>
-
-<div id="inherited-methods-com.google.inject.spi.HasDependencies">
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/HasDependencies.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the known dependencies for this type.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-javax.inject.Provider" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-javax.inject.Provider-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  javax.inject.Provider
-
-<div id="inherited-methods-javax.inject.Provider">
-  <div id="inherited-methods-javax.inject.Provider-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-javax.inject.Provider-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">get</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/ProviderWithExtensionVisitor.html b/javadoc/com/google/inject/spi/ProviderWithExtensionVisitor.html
deleted file mode 100755
index 8eb5064..0000000
--- a/javadoc/com/google/inject/spi/ProviderWithExtensionVisitor.html
+++ /dev/null
@@ -1,703 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ProviderWithExtensionVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ProviderWithExtensionVisitor</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ProviderWithExtensionVisitor&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A Provider that is part of an extension which supports a custom
- BindingTargetVisitor.
- <p> 
- When an extension binds a provider instance, the provider can implement this
- interface to allow users using the
- <code><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor(BindingTargetVisitor)</a></code> method to visit a
- custom visitor designed for that extension. A typical implementation within
- the extension would look like
- <pre> 
- &lt;V, B> V acceptExtensionVisitor(BindingTargetVisitor&lt;B, V> visitor, ProviderInstanceBinding&lt;? extends B> binding) {
-   if(visitor instanceof MyCustomExtensionVisitor) {
-     return ((MyCustomExtensionVisitor&lt;B, V>)visitor).visitCustomExtension(customProperties, binding);
-   } else {
-     return visitor.visit(binding);
-   }
- }</pre> 
- 'MyCustomExtensionVisitor' in the example above would be an interface the
- extension provides that users can implement in order to be notified of custom
- extension information. These visitor interfaces must extend from
- BindingTargetVisitor.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;B,&nbsp;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html#acceptExtensionVisitor(com.google.inject.spi.BindingTargetVisitor<B, V>, com.google.inject.spi.ProviderInstanceBinding<? extends B>)">acceptExtensionVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;B,&nbsp;V&gt; visitor, <a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;B&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Instructs the extension determine if the visitor is an instance of a custom
- extension visitor, and if so, visit it using that method.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Provider" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Provider-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Provider.html">com.google.inject.Provider</a>
-
-<div id="inherited-methods-com.google.inject.Provider">
-  <div id="inherited-methods-com.google.inject.Provider-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Provider-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Provider.html#get()">get</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Provides an instance of <code>T</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-javax.inject.Provider" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-javax.inject.Provider-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  javax.inject.Provider
-
-<div id="inherited-methods-javax.inject.Provider">
-  <div id="inherited-methods-javax.inject.Provider-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-javax.inject.Provider-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">get</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptExtensionVisitor(com.google.inject.spi.BindingTargetVisitor<B, V>, com.google.inject.spi.ProviderInstanceBinding<? extends B>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">acceptExtensionVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;B,&nbsp;V&gt; visitor, <a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;B&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Instructs the extension determine if the visitor is an instance of a custom
- extension visitor, and if so, visit it using that method. If the visitor is
- not an instance of the custom extension visitor, this method <b>MUST</b>
- call visitor.visit(binding).
- <p> 
- Due to issues with generics, the type parameters of this method do not
- relate to the type of the provider. In practice, the 'B' type will always
- be a supertype of 'T'.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/RequireExplicitBindingsOption.html b/javadoc/com/google/inject/spi/RequireExplicitBindingsOption.html
deleted file mode 100755
index ad61777..0000000
--- a/javadoc/com/google/inject/spi/RequireExplicitBindingsOption.html
+++ /dev/null
@@ -1,1014 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  RequireExplicitBindingsOption
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>RequireExplicitBindingsOption</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.RequireExplicitBindingsOption</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A request to require explicit bindings.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/ScopeBinding.html b/javadoc/com/google/inject/spi/ScopeBinding.html
deleted file mode 100755
index d6abfea..0000000
--- a/javadoc/com/google/inject/spi/ScopeBinding.html
+++ /dev/null
@@ -1,1117 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ScopeBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>ScopeBinding</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ScopeBinding</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Registration of a scope annotation with the scope that implements it. Instances are created
- explicitly in a module using <code><a href="../../../../com/google/inject/Binder.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope()</a></code>
- statements:
- <pre>
-     Scope recordScope = new RecordScope();
-     bindScope(RecordScoped.class, new RecordScope());</pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ScopeBinding.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ScopeBinding.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ScopeBinding.html#getAnnotationType()">getAnnotationType</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Scope.html">Scope</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ScopeBinding.html#getScope()">getScope</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ScopeBinding.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getAnnotationType()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Class&lt;?&nbsp;extends&nbsp;Annotation&gt;
-      </span>
-      <span class="sympad">getAnnotationType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getScope()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/Scope.html">Scope</a>
-      </span>
-      <span class="sympad">getScope</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/StaticInjectionRequest.html b/javadoc/com/google/inject/spi/StaticInjectionRequest.html
deleted file mode 100755
index 4887818..0000000
--- a/javadoc/com/google/inject/spi/StaticInjectionRequest.html
+++ /dev/null
@@ -1,1137 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  StaticInjectionRequest
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>StaticInjectionRequest</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.StaticInjectionRequest</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A request to inject the static fields and methods of a type. Requests are created
- explicitly in a module using <code><a href="../../../../com/google/inject/Binder.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection()</a></code> statements:
- <pre>
-     requestStaticInjection(MyLegacyService.class);</pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html#getInjectionPoints()">getInjectionPoints</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the static methods and fields of <code>type</code> that will be injected to fulfill this
- request.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html#getType()">getType</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getInjectionPoints()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;
-      </span>
-      <span class="sympad">getInjectionPoints</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the static methods and fields of <code>type</code> that will be injected to fulfill this
- request.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set of injection points. The set has a specified iteration order. All
-      fields are returned and then all methods. Within the fields, supertype fields are returned
-      before subtype fields. Similarly, supertype methods are returned before subtype methods.</li></ul>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if there is a malformed injection point on <code>type</code>, such as
-      a field with multiple binding annotations. The exception's <code><a href="../../../../com/google/inject/ConfigurationException.html#getPartialValue()">partial value</a></code> is a <code>Set&lt;InjectionPoint&gt;</code>
-      of the valid injection points.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getType()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Class&lt;?&gt;
-      </span>
-      <span class="sympad">getType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/Toolable.html b/javadoc/com/google/inject/spi/Toolable.html
deleted file mode 100755
index c776cb6..0000000
--- a/javadoc/com/google/inject/spi/Toolable.html
+++ /dev/null
@@ -1,607 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Toolable
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>Toolable</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.Toolable</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Instructs an <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> running in <code><a href="../../../../com/google/inject/Stage.html#TOOL">TOOL</a></code> that a method should be injected.
- This is typically useful for for extensions to Guice that perform additional validation in an
- injected method or field.  This only applies to objects that are already constructed when
- bindings are created (ie., something bound using <code><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(com.google.inject.Provider<? extends T>)">toProvider</a></code>, <code><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toInstance(T)">toInstance</a></code>, or <code><a href="../../../../com/google/inject/Binder.html#requestInjection(com.google.inject.TypeLiteral<T>, T)">requestInjection</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/TypeConverter.html b/javadoc/com/google/inject/spi/TypeConverter.html
deleted file mode 100755
index aee275f..0000000
--- a/javadoc/com/google/inject/spi/TypeConverter.html
+++ /dev/null
@@ -1,542 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  TypeConverter
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>TypeConverter</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.TypeConverter</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Converts constant string values to a different type.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeConverter.html#convert(java.lang.String, com.google.inject.TypeLiteral<?>)">convert</a></span>(String value, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; toType)</nobr>
-        
-        <div class="jd-descrdiv">Converts a string value.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="convert(java.lang.String, com.google.inject.TypeLiteral<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Object
-      </span>
-      <span class="sympad">convert</span>
-      <span class="normal">(String value, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; toType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Converts a string value. Throws an exception if a conversion error occurs.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/TypeConverterBinding.html b/javadoc/com/google/inject/spi/TypeConverterBinding.html
deleted file mode 100755
index 40632e2..0000000
--- a/javadoc/com/google/inject/spi/TypeConverterBinding.html
+++ /dev/null
@@ -1,1232 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  TypeConverterBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>TypeConverterBinding</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.TypeConverterBinding</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Registration of type converters for matching target types. Instances are created
- explicitly in a module using <code><a href="../../../../com/google/inject/Binder.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes()</a></code> statements:
- <pre>
-     convertToTypes(Matchers.only(TypeLiteral.get(DateTime.class)), new DateTimeConverter());</pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html#TypeConverterBinding(java.lang.Object, com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">TypeConverterBinding</a></span>(Object source, <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> typeConverter)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html#getTypeConverter()">getTypeConverter</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html#getTypeMatcher()">getTypeMatcher</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="TypeConverterBinding(java.lang.Object, com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">TypeConverterBinding</span>
-      <span class="normal">(Object source, <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> typeConverter)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTypeConverter()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a>
-      </span>
-      <span class="sympad">getTypeConverter</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTypeMatcher()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getTypeMatcher</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/TypeEncounter.html b/javadoc/com/google/inject/spi/TypeEncounter.html
deleted file mode 100755
index 177afb8..0000000
--- a/javadoc/com/google/inject/spi/TypeEncounter.html
+++ /dev/null
@@ -1,1073 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  TypeEncounter
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>TypeEncounter</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.TypeEncounter&lt;I&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Context of an injectable type encounter. Enables reporting errors, registering injection
- listeners and binding method interceptors for injectable type <code>I</code>. It is an error to use
- an encounter after the <code><a href="../../../../com/google/inject/spi/TypeListener.html#hear(com.google.inject.TypeLiteral<I>, com.google.inject.spi.TypeEncounter<I>)">hear()</a></code> method has
- returned.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-        <div class="jd-descrdiv">Records an error message to be presented to the user at a later time.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-        <div class="jd-descrdiv">Records an error message for type <code>I</code> which will be presented to the user at a later
- time.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-        <div class="jd-descrdiv">Records an exception for type <code>I</code>, the full details of which will be logged, and the
- message of which will be presented to the user at a later time.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-        <div class="jd-descrdiv">Binds method interceptor[s] to methods matched in type <code>I</code> and its supertypes.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-        <div class="jd-descrdiv">Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Returns the provider used to obtain instances for the given injection key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the provider used to obtain instances for the given injection type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#register(com.google.inject.MembersInjector<? super I>)">register</a></span>(<a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;?&nbsp;super&nbsp;I&gt; membersInjector)</nobr>
-        
-        <div class="jd-descrdiv">Registers a members injector for type <code>I</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#register(com.google.inject.spi.InjectionListener<? super I>)">register</a></span>(<a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;?&nbsp;super&nbsp;I&gt; listener)</nobr>
-        
-        <div class="jd-descrdiv">Registers an injection listener for type <code>I</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="addError(com.google.inject.spi.Message)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records an error message to be presented to the user at a later time.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="addError(java.lang.String, java.lang.Object...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(String message, Object... arguments)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records an error message for type <code>I</code> which will be presented to the user at a later
- time. Unlike throwing an exception, this enable us to continue configuring the Injector and
- discover more errors. Uses <code><a href="null#format(java.lang.String, java.lang.Object...)">format(String, Object[])</a></code> to insert the arguments
- into the message.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="addError(java.lang.Throwable)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(Throwable t)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records an exception for type <code>I</code>, the full details of which will be logged, and the
- message of which will be presented to the user at a later time. If your type listener calls
- something that you worry may fail, you should catch the exception and pass it to this method.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">bindInterceptor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds method interceptor[s] to methods matched in type <code>I</code> and its supertypes. A
- method is eligible for interception if:
-
- <ul>
-  <li>Guice created the instance the method is on</li>
-  <li>Neither the enclosing type nor the method is final</li>
-  <li>And the method is package-private or more accessible</li>
- </ul></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>methodMatcher</td>
-          <td>matches methods the interceptor should apply to. For
-     example: <code>annotatedWith(Transactional.class)</code>.</td>
-        </tr>
-        <tr>
-          <th>interceptors</td>
-          <td>to bind
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>. The returned members injector will not be valid until the main
- injector has been created. The members injector will throw an <code>IllegalStateException</code>
- if you try to use it beforehand.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>typeLiteral</td>
-          <td>type to get members injector for
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>. The returned members injector will not be valid until the main
- injector has been created. The members injector will throw an <code>IllegalStateException</code>
- if you try to use it beforehand.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>type</td>
-          <td>type to get members injector for
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the provider used to obtain instances for the given injection key. The returned
- provider will not be valid until the injector has been created. The provider will throw an
- <code>IllegalStateException</code> if you try to use it beforehand.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the provider used to obtain instances for the given injection type. The returned
- provider will not be valid until the injetor has been created. The provider will throw an
- <code>IllegalStateException</code> if you try to use it beforehand.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="register(com.google.inject.MembersInjector<? super I>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">register</span>
-      <span class="normal">(<a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;?&nbsp;super&nbsp;I&gt; membersInjector)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Registers a members injector for type <code>I</code>. Guice will use the members injector after its
- performed its own injections on an instance of <code>I</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="register(com.google.inject.spi.InjectionListener<? super I>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">register</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;?&nbsp;super&nbsp;I&gt; listener)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Registers an injection listener for type <code>I</code>. Guice will notify the listener after all
- injections have been performed on an instance of <code>I</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/TypeListener.html b/javadoc/com/google/inject/spi/TypeListener.html
deleted file mode 100755
index ed28ec9..0000000
--- a/javadoc/com/google/inject/spi/TypeListener.html
+++ /dev/null
@@ -1,561 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  TypeListener
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>TypeListener</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.TypeListener</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Listens for Guice to encounter injectable types. If a given type has its constructor injected in
- one situation but only its methods and fields injected in another, Guice will notify this
- listener once.
-
- <p>Useful for extra type checking, <code><a href="../../../../com/google/inject/spi/TypeEncounter.html#register(com.google.inject.spi.InjectionListener<? super I>)">registering injection listeners</a></code>, and <code><a href="../../../../com/google/inject/spi/TypeEncounter.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">binding method interceptors</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;I&gt;
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeListener.html#hear(com.google.inject.TypeLiteral<I>, com.google.inject.spi.TypeEncounter<I>)">hear</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;I&gt; type, <a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt; encounter)</nobr>
-        
-        <div class="jd-descrdiv">Invoked when Guice encounters a new type eligible for constructor or members injection.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="hear(com.google.inject.TypeLiteral<I>, com.google.inject.spi.TypeEncounter<I>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">hear</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;I&gt; type, <a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt; encounter)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Invoked when Guice encounters a new type eligible for constructor or members injection.
- Called during injector creation (or afterwords if Guice encounters a type at run time and
- creates a JIT binding).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>type</td>
-          <td>encountered by Guice</td>
-        </tr>
-        <tr>
-          <th>encounter</td>
-          <td>context of this encounter, enables reporting errors, registering injection
-     listeners and binding method interceptors for <code>type</code>.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/TypeListenerBinding.html b/javadoc/com/google/inject/spi/TypeListenerBinding.html
deleted file mode 100755
index 47c8ec7..0000000
--- a/javadoc/com/google/inject/spi/TypeListenerBinding.html
+++ /dev/null
@@ -1,1120 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  TypeListenerBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>TypeListenerBinding</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.TypeListenerBinding</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Binds types (picked using a Matcher) to an type listener. Registrations are created explicitly in
- a module using <code><a href="../../../../com/google/inject/Binder.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener(Matcher, TypeListener)</a></code> statements:
-
- <pre>
-     register(only(new TypeLiteral&lt;PaymentService&lt;CreditCard>>() {}), listener);</pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html#getListener()">getListener</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the registered listener.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html#getTypeMatcher()">getTypeMatcher</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the type matcher which chooses which types the listener should be notified of.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getListener()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a>
-      </span>
-      <span class="sympad">getListener</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the registered listener. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTypeMatcher()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getTypeMatcher</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the type matcher which chooses which types the listener should be notified of. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/UntargettedBinding.html b/javadoc/com/google/inject/spi/UntargettedBinding.html
deleted file mode 100755
index 9ac85fa..0000000
--- a/javadoc/com/google/inject/spi/UntargettedBinding.html
+++ /dev/null
@@ -1,702 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  UntargettedBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>UntargettedBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.UntargettedBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>An untargetted binding. This binding indicates that the injector should use its implicit binding
- strategies to resolve injections.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Binding.html">com.google.inject.Binding</a>
-
-<div id="inherited-methods-com.google.inject.Binding">
-  <div id="inherited-methods-com.google.inject.Binding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/package-descr.html b/javadoc/com/google/inject/spi/package-descr.html
deleted file mode 100755
index ab0e75f..0000000
--- a/javadoc/com/google/inject/spi/package-descr.html
+++ /dev/null
@@ -1,337 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.spi Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.spi</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<div class="jd-descr">
-<p>Guice service provider interface
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spi/package-summary.html b/javadoc/com/google/inject/spi/package-summary.html
deleted file mode 100755
index 055c543..0000000
--- a/javadoc/com/google/inject/spi/package-summary.html
+++ /dev/null
@@ -1,529 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.spi
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.spi</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-
-
-  <div class="jd-descr">
-  <p>Guice service provider interface
-</p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</td>
-              <td class="jd-descrcol" width="100%">Visits each of the strategies used to scope an injection.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">Visits each of the strategies used to find an instance to satisfy an injection.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to the constructor of a concrete clss.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding created from converting a bound instance to a new type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/Element.html">Element</a></td>
-              <td class="jd-descrcol" width="100%">A core component of a module or injector.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</td>
-              <td class="jd-descrcol" width="100%">Visit elements.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a key exposed from an enclosed private environment.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></td>
-              <td class="jd-descrcol" width="100%">Implemented by <code><a href="../../../../com/google/inject/Binding.html">bindings</a></code>, <code><a href="../../../../com/google/inject/Provider.html">providers</a></code> and instances that expose their dependencies explicitly.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</td>
-              <td class="jd-descrcol" width="100%">Listens for injections into instances of type <code>I</code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a single instance.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a linked key.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></td>
-              <td class="jd-descrcol" width="100%">A private collection of elements that are hidden from the enclosing injector or module by
- default.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the provided type.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a provider instance.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a provider key.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A provider with dependencies on other injected types.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A Provider that is part of an extension which supports a custom
- BindingTargetVisitor.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></td>
-              <td class="jd-descrcol" width="100%">Converts constant string values to a different type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</td>
-              <td class="jd-descrcol" width="100%">Context of an injectable type encounter.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></td>
-              <td class="jd-descrcol" width="100%">Listens for Guice to encounter injectable types.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">An untargetted binding.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</td>
-              <td class="jd-descrcol" width="100%">No-op visitor for subclassing.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">No-op visitor for subclassing.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</td>
-              <td class="jd-descrcol" width="100%">No-op visitor for subclassing.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A variable that can be resolved by an injector.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></td>
-              <td class="jd-descrcol" width="100%">A request to disable circular proxies.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></td>
-              <td class="jd-descrcol" width="100%">Exposes elements of a module so they can be inspected, validated or <code><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">rewritten</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></td>
-              <td class="jd-descrcol" width="100%">A constructor, field or method that can receive injections.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A request to inject the instance fields and methods of an instance.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></td>
-              <td class="jd-descrcol" width="100%">Registration of interceptors for matching methods of matching classes.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A lookup of the members injector for a type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/Message.html">Message</a></td>
-              <td class="jd-descrcol" width="100%">An error message and the context in which it occured.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A lookup of the provider for a type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></td>
-              <td class="jd-descrcol" width="100%">A request to require explicit bindings.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></td>
-              <td class="jd-descrcol" width="100%">Registration of a scope annotation with the scope that implements it.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></td>
-              <td class="jd-descrcol" width="100%">A request to inject the static fields and methods of a type.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></td>
-              <td class="jd-descrcol" width="100%">Registration of type converters for matching target types.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></td>
-              <td class="jd-descrcol" width="100%">Binds types (picked using a Matcher) to an type listener.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spring/SpringIntegration.html b/javadoc/com/google/inject/spring/SpringIntegration.html
deleted file mode 100755
index 79721c4..0000000
--- a/javadoc/com/google/inject/spring/SpringIntegration.html
+++ /dev/null
@@ -1,812 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  SpringIntegration
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spring/SpringIntegration.html">SpringIntegration</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>SpringIntegration</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spring.SpringIntegration</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Integrates Guice with Spring.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spring/SpringIntegration.html#bindAll(com.google.inject.Binder, ListableBeanFactory)">bindAll</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, ListableBeanFactory beanFactory)</nobr>
-        
-        <div class="jd-descrdiv">Binds all Spring beans from the given factory by name.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spring/SpringIntegration.html#fromSpring(java.lang.Class<T>, java.lang.String)">fromSpring</a></span>(Class&lt;T&gt; type, String name)</nobr>
-        
-        <div class="jd-descrdiv">Creates a provider which looks up objects from Spring using the given name.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="bindAll(com.google.inject.Binder, ListableBeanFactory)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">bindAll</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, ListableBeanFactory beanFactory)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds all Spring beans from the given factory by name. For a Spring bean
- named "foo", this method creates a binding to the bean's type and
- <code>@Named("foo")</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/name/Named.html">Named</a></code></li><li><code><a href="../../../../com/google/inject/name/Names.html#named(java.lang.String)">named(String)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="fromSpring(java.lang.Class<T>, java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">fromSpring</span>
-      <span class="normal">(Class&lt;T&gt; type, String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a provider which looks up objects from Spring using the given name.
- Expects a binding to org.springframework.beans.factory.BeanFactory. Example usage:
-
- <pre>
- bind(DataSource.class)
-   .toProvider(fromSpring(DataSource.class, "dataSource"));
- </pre>
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spring/package-descr.html b/javadoc/com/google/inject/spring/package-descr.html
deleted file mode 100755
index b0c18ce..0000000
--- a/javadoc/com/google/inject/spring/package-descr.html
+++ /dev/null
@@ -1,291 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.spring Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spring/SpringIntegration.html">SpringIntegration</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.spring</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<div class="jd-descr">
-<p>Spring integration; this extension requires <code>guice-spring-3.0.jar</code>.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/spring/package-summary.html b/javadoc/com/google/inject/spring/package-summary.html
deleted file mode 100755
index 20f51e3..0000000
--- a/javadoc/com/google/inject/spring/package-summary.html
+++ /dev/null
@@ -1,327 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.spring
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spring/SpringIntegration.html">SpringIntegration</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.spring</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-
-
-  <div class="jd-descr">
-  <p>Spring integration; this extension requires <code>guice-spring-3.0.jar</code>.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spring/SpringIntegration.html">SpringIntegration</a></td>
-              <td class="jd-descrcol" width="100%">Integrates Guice with Spring.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/throwingproviders/CheckedProvider.html b/javadoc/com/google/inject/throwingproviders/CheckedProvider.html
deleted file mode 100755
index 67891f3..0000000
--- a/javadoc/com/google/inject/throwingproviders/CheckedProvider.html
+++ /dev/null
@@ -1,581 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  CheckedProvider
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>CheckedProvider</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.throwingproviders.CheckedProvider&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</td>
-              <td class="jd-descrcol" width="100%">
-      <em>
-  This interface is deprecated.
-      use <code><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code> instead.
-</em>&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Alternative to the Guice <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that throws
- a checked Exception. Users may not inject <code>T</code> directly.
-
- <p>This interface must be extended to use application-specific exception types.
- Such subinterfaces may not define new methods, but may narrow the exception type.
- <pre>
- public interface RemoteProvider&lt;T&gt; extends CheckedProvider&lt;T&gt; { 
-   T get() throws CustomExceptionOne, CustomExceptionTwo;
- }
- </pre>
-
- <p>When this type is bound using <code><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></code>, the value returned
- or exception thrown by <code><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html#get()">get()</a></code> will be scoped. As a consequence, <code><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html#get()">get()</a></code>
- will invoked at most once within each scope.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html#get()">get</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="get()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>Exception</td>
-            <td></td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/throwingproviders/CheckedProvides.html b/javadoc/com/google/inject/throwingproviders/CheckedProvides.html
deleted file mode 100755
index b9dc4ee..0000000
--- a/javadoc/com/google/inject/throwingproviders/CheckedProvides.html
+++ /dev/null
@@ -1,576 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  CheckedProvides
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>CheckedProvides</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.throwingproviders.CheckedProvides</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Annotates methods of a Module to create a <code><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code>
- method binding that can throw exceptions. The method's return type is bound
- to a <code><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code> that can be injected. Guice will pass
- dependencies to the method as parameters. Install @CheckedProvides
- methods by using
- <code><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html#forModule(com.google.inject.Module)">forModule(com.google.inject.Module)</a></code> on the
- module where the methods are declared.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/throwingproviders/ThrowingProvider.html b/javadoc/com/google/inject/throwingproviders/ThrowingProvider.html
deleted file mode 100755
index 754e1dd..0000000
--- a/javadoc/com/google/inject/throwingproviders/ThrowingProvider.html
+++ /dev/null
@@ -1,613 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ThrowingProvider
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ThrowingProvider</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.throwingproviders.ThrowingProvider&lt;T,&nbsp;E&nbsp;extends&nbsp;java.lang.Exception&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-<p>
-  <p class="caution">
-      <strong>
-  This interface is deprecated.</strong><br/> use <code><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code> instead.
-
-  </p>
-
-<h2>Class Overview</h2>
-<p>Alternative to the Guice <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that throws
- a checked Exception. Users may not inject <code>T</code> directly.
-
- <p>This interface must be extended to use application-specific exception types.
- Such subinterfaces may not define new methods:
- <pre>
- public interface RemoteProvider&lt;T&gt; extends ThrowingProvider&lt;T, RemoteException&gt; { }
- </pre>
-
- <p>When this type is bound using <code><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></code>, the value returned
- or exception thrown by <code><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html#get()">get()</a></code> will be scoped. As a consequence, <code><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html#get()">get()</a></code>
- will invoked at most once within each scope.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html#get()">get</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.throwingproviders.CheckedProvider" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.throwingproviders.CheckedProvider-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">com.google.inject.throwingproviders.CheckedProvider</a>
-
-<div id="inherited-methods-com.google.inject.throwingproviders.CheckedProvider">
-  <div id="inherited-methods-com.google.inject.throwingproviders.CheckedProvider-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.throwingproviders.CheckedProvider-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html#get()">get</a></span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="get()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>Exception</td>
-            <td></td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html b/javadoc/com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html
deleted file mode 100755
index 01fde48..0000000
--- a/javadoc/com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html
+++ /dev/null
@@ -1,1018 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ThrowingProviderBinder.SecondaryBinder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>ThrowingProviderBinder.SecondaryBinder</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">com.google.inject.throwingproviders.CheckedProvider</a>&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html#ThrowingProviderBinder.SecondaryBinder(java.lang.Class<P>, java.lang.reflect.Type)">ThrowingProviderBinder.SecondaryBinder</a></span>(Class&lt;P&gt; interfaceType, Type valueType)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">SecondaryBinder</a>&lt;P&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html#annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)">annotatedWith</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">SecondaryBinder</a>&lt;P&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html#annotatedWith(java.lang.annotation.Annotation)">annotatedWith</a></span>(Annotation annotation)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html#to(P)">to</a></span>(P target)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html#to(com.google.inject.Key<? extends P>)">to</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;P&gt; targetKey)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html#to(java.lang.Class<? extends P>)">to</a></span>(Class&lt;?&nbsp;extends&nbsp;P&gt; targetType)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="ThrowingProviderBinder.SecondaryBinder(java.lang.Class<P>, java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ThrowingProviderBinder.SecondaryBinder</span>
-      <span class="normal">(Class&lt;P&gt; interfaceType, Type valueType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">SecondaryBinder</a>&lt;P&gt;
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="annotatedWith(java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">SecondaryBinder</a>&lt;P&gt;
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(P)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(P target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(com.google.inject.Key<? extends P>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;P&gt; targetKey)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(java.lang.Class<? extends P>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;P&gt; targetType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/throwingproviders/ThrowingProviderBinder.html b/javadoc/com/google/inject/throwingproviders/ThrowingProviderBinder.html
deleted file mode 100755
index 00b6b0f..0000000
--- a/javadoc/com/google/inject/throwingproviders/ThrowingProviderBinder.html
+++ /dev/null
@@ -1,900 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ThrowingProviderBinder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>ThrowingProviderBinder</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.throwingproviders.ThrowingProviderBinder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p><p>Builds a binding for a <code><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code>.
- 
- <p>You can use a fluent API and custom providers:
- <pre><code>ThrowingProviderBinder.create(binder())
-    .bind(RemoteProvider.class, Customer.class)
-    .to(RemoteCustomerProvider.class)
-    .in(RequestScope.class);
- </code></pre>
- or, you can use throwing provider methods:
- <pre><code>class MyModule extends AbstractModule {
-   configure() {
-     ThrowingProviderBinder.install(this, binder());
-   }
-   
-   @CheckedProvides(RemoteProvider.class)
-   @RequestScope
-   Customer provideCustomer(FlakyCustomerCreator creator) throws RemoteException {
-     return creator.getCustomerOrThrow();
-   }
- }
- </code></pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_2.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        class</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</td>
-      <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;
-            <a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">SecondaryBinder</a>&lt;P&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html#bind(java.lang.Class<P>, java.lang.reflect.Type)">bind</a></span>(Class&lt;P&gt; interfaceType, Type valueType)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html#create(com.google.inject.Binder)">create</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/Module.html">Module</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html#forModule(com.google.inject.Module)">forModule</a></span>(<a href="../../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-        <div class="jd-descrdiv">Returns a module that installs @<code><a href="../../../../com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></code> methods.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="bind(java.lang.Class<P>, java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">SecondaryBinder</a>&lt;P&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(Class&lt;P&gt; interfaceType, Type valueType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="create(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a>
-      </span>
-      <span class="sympad">create</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="forModule(com.google.inject.Module)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-      <span class="sympad">forModule</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Module.html">Module</a> module)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a module that installs @<code><a href="../../../../com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></code> methods.</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/throwingproviders/package-descr.html b/javadoc/com/google/inject/throwingproviders/package-descr.html
deleted file mode 100755
index 5b0b1ae..0000000
--- a/javadoc/com/google/inject/throwingproviders/package-descr.html
+++ /dev/null
@@ -1,303 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.throwingproviders Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.throwingproviders</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<div class="jd-descr">
-<p>Extension for injecting objects that may throw at provision time; this extension requires <code>guice-throwingproviders-3.0.jar</code>.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/throwingproviders/package-summary.html b/javadoc/com/google/inject/throwingproviders/package-summary.html
deleted file mode 100755
index 5e1875d..0000000
--- a/javadoc/com/google/inject/throwingproviders/package-summary.html
+++ /dev/null
@@ -1,363 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.throwingproviders
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.throwingproviders</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-
-
-  <div class="jd-descr">
-  <p>Extension for injecting objects that may throw at provision time; this extension requires <code>guice-throwingproviders-3.0.jar</code>.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">Alternative to the Guice <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that throws
- a checked Exception.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</td>
-              <td class="jd-descrcol" width="100%">
-      <em>
-  This interface is deprecated.
-      use <code><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code> instead.
-</em>&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></td>
-              <td class="jd-descrcol" width="100%"><p>Builds a binding for a <code><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</td>
-              <td class="jd-descrcol" width="100%">&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/tools/jmx/ManagedBindingMBean.html b/javadoc/com/google/inject/tools/jmx/ManagedBindingMBean.html
deleted file mode 100755
index 5a51c17..0000000
--- a/javadoc/com/google/inject/tools/jmx/ManagedBindingMBean.html
+++ /dev/null
@@ -1,605 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  ManagedBindingMBean
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../../com/google/inject/tools/jmx/ManagedBindingMBean.html">ManagedBindingMBean</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../../com/google/inject/tools/jmx/Manager.html">Manager</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ManagedBindingMBean</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.tools.jmx.ManagedBindingMBean</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>JMX interface to bindings.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/tools/jmx/ManagedBindingMBean.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the binding key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/tools/jmx/ManagedBindingMBean.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the provider to which this binding is bound.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/tools/jmx/ManagedBindingMBean.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the source of this binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getKey()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the binding key.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the provider to which this binding is bound.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the source of this binding.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/tools/jmx/Manager.html b/javadoc/com/google/inject/tools/jmx/Manager.html
deleted file mode 100755
index 14703f3..0000000
--- a/javadoc/com/google/inject/tools/jmx/Manager.html
+++ /dev/null
@@ -1,936 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  Manager
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../../com/google/inject/tools/jmx/ManagedBindingMBean.html">ManagedBindingMBean</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../../com/google/inject/tools/jmx/Manager.html">Manager</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>Manager</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.tools.jmx.Manager</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Provides a JMX interface to Guice.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/tools/jmx/Manager.html#Manager()">Manager</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/tools/jmx/Manager.html#main(java.lang.String[])">main</a></span>(String[] args)</nobr>
-        
-        <div class="jd-descrdiv">Run with no arguments for usage instructions.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/tools/jmx/Manager.html#manage(java.lang.String, com.google.inject.Injector)">manage</a></span>(String domain, <a href="../../../../../com/google/inject/Injector.html">Injector</a> injector)</nobr>
-        
-        <div class="jd-descrdiv">Registers all the bindings of an Injector with the platform MBean server.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/tools/jmx/Manager.html#manage(javax.management.MBeanServer, java.lang.String, com.google.inject.Injector)">manage</a></span>(MBeanServer server, String domain, <a href="../../../../../com/google/inject/Injector.html">Injector</a> injector)</nobr>
-        
-        <div class="jd-descrdiv">Registers all the bindings of an Injector with the given MBean server.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="Manager()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">Manager</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="main(java.lang.String[])"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">main</span>
-      <span class="normal">(String[] args)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Run with no arguments for usage instructions.
-</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>Exception</td>
-            <td></td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="manage(java.lang.String, com.google.inject.Injector)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">manage</span>
-      <span class="normal">(String domain, <a href="../../../../../com/google/inject/Injector.html">Injector</a> injector)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Registers all the bindings of an Injector with the platform MBean server.
- Consider using the name of your root <code><a href="../../../../../com/google/inject/Module.html">Module</a></code> class as the domain.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="manage(javax.management.MBeanServer, java.lang.String, com.google.inject.Injector)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">manage</span>
-      <span class="normal">(MBeanServer server, String domain, <a href="../../../../../com/google/inject/Injector.html">Injector</a> injector)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Registers all the bindings of an Injector with the given MBean server.
- Consider using the name of your root <code><a href="../../../../../com/google/inject/Module.html">Module</a></code> class as the domain.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/tools/jmx/package-descr.html b/javadoc/com/google/inject/tools/jmx/package-descr.html
deleted file mode 100755
index ad72aea..0000000
--- a/javadoc/com/google/inject/tools/jmx/package-descr.html
+++ /dev/null
@@ -1,296 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  com.google.inject.tools.jmx Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../../com/google/inject/tools/jmx/ManagedBindingMBean.html">ManagedBindingMBean</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../../com/google/inject/tools/jmx/Manager.html">Manager</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.tools.jmx</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<div class="jd-descr">
-<p>JMX integration; this extension requires <code>guice-jmx-3.0.jar</code>.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/tools/jmx/package-summary.html b/javadoc/com/google/inject/tools/jmx/package-summary.html
deleted file mode 100755
index 1d0498e..0000000
--- a/javadoc/com/google/inject/tools/jmx/package-summary.html
+++ /dev/null
@@ -1,343 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  com.google.inject.tools.jmx
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../../com/google/inject/tools/jmx/ManagedBindingMBean.html">ManagedBindingMBean</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../../com/google/inject/tools/jmx/Manager.html">Manager</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.tools.jmx</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-
-
-  <div class="jd-descr">
-  <p>JMX integration; this extension requires <code>guice-jmx-3.0.jar</code>.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/tools/jmx/ManagedBindingMBean.html">ManagedBindingMBean</a></td>
-              <td class="jd-descrcol" width="100%">JMX interface to bindings.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/tools/jmx/Manager.html">Manager</a></td>
-              <td class="jd-descrcol" width="100%">Provides a JMX interface to Guice.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/util/Modules.OverriddenModuleBuilder.html b/javadoc/com/google/inject/util/Modules.OverriddenModuleBuilder.html
deleted file mode 100755
index 6799ae8..0000000
--- a/javadoc/com/google/inject/util/Modules.OverriddenModuleBuilder.html
+++ /dev/null
@@ -1,556 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Modules.OverriddenModuleBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.html">Modules</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Providers.html">Providers</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Types.html">Types</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-    static 
-     
-    
-    interface
-<h1>Modules.OverriddenModuleBuilder</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.util.Modules.OverriddenModuleBuilder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>See the EDSL example at <code><a href="../../../../com/google/inject/util/Modules.html#override(com.google.inject.Module...)">override()</a></code>.
-</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Module.html">Module</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html#with(com.google.inject.Module...)">with</a></span>(<a href="../../../../com/google/inject/Module.html">Module...</a> overrides)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL example at <code><a href="../../../../com/google/inject/util/Modules.html#override(com.google.inject.Module...)">override()</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Module.html">Module</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html#with(java.lang.Iterable<? extends com.google.inject.Module>)">with</a></span>(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; overrides)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL example at <code><a href="../../../../com/google/inject/util/Modules.html#override(com.google.inject.Module...)">override()</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="with(com.google.inject.Module...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-      <span class="sympad">with</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Module.html">Module...</a> overrides)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL example at <code><a href="../../../../com/google/inject/util/Modules.html#override(com.google.inject.Module...)">override()</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="with(java.lang.Iterable<? extends com.google.inject.Module>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-      <span class="sympad">with</span>
-      <span class="normal">(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; overrides)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL example at <code><a href="../../../../com/google/inject/util/Modules.html#override(com.google.inject.Module...)">override()</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/util/Modules.html b/javadoc/com/google/inject/util/Modules.html
deleted file mode 100755
index 485e246..0000000
--- a/javadoc/com/google/inject/util/Modules.html
+++ /dev/null
@@ -1,1034 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Modules
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.html">Modules</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Providers.html">Providers</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Types.html">Types</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-  &#124; <a href="#constants">Constants</a>
-  
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>Modules</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.util.Modules</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Static utility methods for creating and working with instances of <code><a href="../../../../com/google/inject/Module.html">Module</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_2.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        interface</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></td>
-      <td class="jd-descrcol" width="100%">See the EDSL example at <code><a href="../../../../com/google/inject/util/Modules.html#override(com.google.inject.Module...)">override()</a></code>.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-
-    
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><a href="../../../../com/google/inject/Module.html">Module</a></td>
-        <td class="jd-linkcol"><a href="../../../../com/google/inject/util/Modules.html#EMPTY_MODULE">EMPTY_MODULE</a></td>
-        <td class="jd-descrcol" width="100%"></td>
-    </tr>
-    
-    
-
-</table>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/Module.html">Module</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Modules.html#combine(com.google.inject.Module...)">combine</a></span>(<a href="../../../../com/google/inject/Module.html">Module...</a> modules)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new module that installs all of <code>modules</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/Module.html">Module</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Modules.html#combine(java.lang.Iterable<? extends com.google.inject.Module>)">combine</a></span>(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; modules)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new module that installs all of <code>modules</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Modules.html#override(com.google.inject.Module...)">override</a></span>(<a href="../../../../com/google/inject/Module.html">Module...</a> modules)</nobr>
-        
-        <div class="jd-descrdiv">Returns a builder that creates a module that overlays override modules over the given
- modules.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Modules.html#override(java.lang.Iterable<? extends com.google.inject.Module>)">override</a></span>(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; modules)</nobr>
-        
-        <div class="jd-descrdiv">Returns a builder that creates a module that overlays override modules over the given
- modules.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Constants</h2>
-
-
-
-
-<A NAME="EMPTY_MODULE"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-        EMPTY_MODULE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="combine(com.google.inject.Module...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-      <span class="sympad">combine</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Module.html">Module...</a> modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new module that installs all of <code>modules</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="combine(java.lang.Iterable<? extends com.google.inject.Module>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-      <span class="sympad">combine</span>
-      <span class="normal">(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new module that installs all of <code>modules</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="override(com.google.inject.Module...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a>
-      </span>
-      <span class="sympad">override</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Module.html">Module...</a> modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a builder that creates a module that overlays override modules over the given
- modules. If a key is bound in both sets of modules, only the binding from the override modules
- is kept. If a single <code><a href="../../../../com/google/inject/PrivateModule.html">PrivateModule</a></code> is supplied or all elements are from
- a single <code><a href="../../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></code>, then this will overwrite the private bindings.
- Otherwise, private bindings will not be overwritten unless they are exposed. 
- This can be used to replace the bindings of a production module with test bindings:
- <pre>
- Module functionalTestModule
-     = Modules.override(new ProductionModule()).with(new TestModule());
- </pre>
-
- <p>Prefer to write smaller modules that can be reused and tested without overrides.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>modules</td>
-          <td>the modules whose bindings are open to be overridden
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="override(java.lang.Iterable<? extends com.google.inject.Module>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a>
-      </span>
-      <span class="sympad">override</span>
-      <span class="normal">(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a builder that creates a module that overlays override modules over the given
- modules. If a key is bound in both sets of modules, only the binding from the override modules
- is kept. If a single <code><a href="../../../../com/google/inject/PrivateModule.html">PrivateModule</a></code> is supplied or all elements are from
- a single <code><a href="../../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></code>, then this will overwrite the private bindings.
- Otherwise, private bindings will not be overwritten unless they are exposed. 
- This can be used to replace the bindings of a production module with test bindings:
- <pre>
- Module functionalTestModule
-     = Modules.override(getProductionModules()).with(getTestModules());
- </pre>
-
- <p>Prefer to write smaller modules that can be reused and tested without overrides.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>modules</td>
-          <td>the modules whose bindings are open to be overridden
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/util/Providers.html b/javadoc/com/google/inject/util/Providers.html
deleted file mode 100755
index b7d0100..0000000
--- a/javadoc/com/google/inject/util/Providers.html
+++ /dev/null
@@ -1,823 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Providers
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.html">Modules</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Providers.html">Providers</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Types.html">Types</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>Providers</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.util.Providers</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Static utility methods for creating and working with instances of
- <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Providers.html#guicify(javax.inject.Provider<T>)">guicify</a></span>(Provider&lt;T&gt; provider)</nobr>
-        
-        <div class="jd-descrdiv">Returns a Guice-friendly <code>com.google.inject.Provider</code> for the given
- JSR-330 <code>javax.inject.Provider</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Providers.html#of(T)">of</a></span>(T instance)</nobr>
-        
-        <div class="jd-descrdiv">Returns a provider which always provides <code>instance</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="guicify(javax.inject.Provider<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">guicify</span>
-      <span class="normal">(Provider&lt;T&gt; provider)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a Guice-friendly <code>com.google.inject.Provider</code> for the given
- JSR-330 <code>javax.inject.Provider</code>. The converse method is unnecessary,
- since Guice providers directly implement the JSR-330 interface.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="of(T)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">of</span>
-      <span class="normal">(T instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a provider which always provides <code>instance</code>.  This should not
- be necessary to use in your application, but is helpful for several types
- of unit tests.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>instance</td>
-          <td>the instance that should always be provided.  This is also
-     permitted to be null, to enable aggressive testing, although in real
-     life a Guice-supplied Provider will never return null.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/util/Types.html b/javadoc/com/google/inject/util/Types.html
deleted file mode 100755
index 3c68196..0000000
--- a/javadoc/com/google/inject/util/Types.html
+++ /dev/null
@@ -1,1218 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Types
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.html">Modules</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Providers.html">Providers</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Types.html">Types</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>Types</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.util.Types</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Static methods for working with types.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            GenericArrayType</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Types.html#arrayOf(java.lang.reflect.Type)">arrayOf</a></span>(Type componentType)</nobr>
-        
-        <div class="jd-descrdiv">Returns an array type whose elements are all instances of
- <code>componentType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            ParameterizedType</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Types.html#listOf(java.lang.reflect.Type)">listOf</a></span>(Type elementType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a type modelling a List whose elements are of type
- <code>elementType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            ParameterizedType</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Types.html#mapOf(java.lang.reflect.Type, java.lang.reflect.Type)">mapOf</a></span>(Type keyType, Type valueType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a type modelling a Map whose keys are of type
- <code>keyType</code> and whose values are of type <code>valueType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            ParameterizedType</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Types.html#newParameterizedType(java.lang.reflect.Type, java.lang.reflect.Type...)">newParameterizedType</a></span>(Type rawType, Type... typeArguments)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new parameterized type, applying <code>typeArguments</code> to
- <code>rawType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            ParameterizedType</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Types.html#newParameterizedTypeWithOwner(java.lang.reflect.Type, java.lang.reflect.Type, java.lang.reflect.Type...)">newParameterizedTypeWithOwner</a></span>(Type ownerType, Type rawType, Type... typeArguments)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new parameterized type, applying <code>typeArguments</code> to
- <code>rawType</code> and enclosed by <code>ownerType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            ParameterizedType</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Types.html#providerOf(java.lang.reflect.Type)">providerOf</a></span>(Type providedType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a type modelling a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that provides elements of type
- <code>elementType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            ParameterizedType</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Types.html#setOf(java.lang.reflect.Type)">setOf</a></span>(Type elementType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a type modelling a Set whose elements are of type
- <code>elementType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            WildcardType</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Types.html#subtypeOf(java.lang.reflect.Type)">subtypeOf</a></span>(Type bound)</nobr>
-        
-        <div class="jd-descrdiv">Returns a type that represents an unknown type that extends <code>bound</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            WildcardType</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Types.html#supertypeOf(java.lang.reflect.Type)">supertypeOf</a></span>(Type bound)</nobr>
-        
-        <div class="jd-descrdiv">Returns a type that represents an unknown supertype of <code>bound</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="arrayOf(java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        GenericArrayType
-      </span>
-      <span class="sympad">arrayOf</span>
-      <span class="normal">(Type componentType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an array type whose elements are all instances of
- <code>componentType</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a java.io.Serializable serializable generic array type.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="listOf(java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        ParameterizedType
-      </span>
-      <span class="sympad">listOf</span>
-      <span class="normal">(Type elementType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a type modelling a List whose elements are of type
- <code>elementType</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a java.io.Serializable serializable parameterized type.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="mapOf(java.lang.reflect.Type, java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        ParameterizedType
-      </span>
-      <span class="sympad">mapOf</span>
-      <span class="normal">(Type keyType, Type valueType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a type modelling a Map whose keys are of type
- <code>keyType</code> and whose values are of type <code>valueType</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a java.io.Serializable serializable parameterized type.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="newParameterizedType(java.lang.reflect.Type, java.lang.reflect.Type...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        ParameterizedType
-      </span>
-      <span class="sympad">newParameterizedType</span>
-      <span class="normal">(Type rawType, Type... typeArguments)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new parameterized type, applying <code>typeArguments</code> to
- <code>rawType</code>. The returned type does not have an owner type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a java.io.Serializable serializable parameterized type.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="newParameterizedTypeWithOwner(java.lang.reflect.Type, java.lang.reflect.Type, java.lang.reflect.Type...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        ParameterizedType
-      </span>
-      <span class="sympad">newParameterizedTypeWithOwner</span>
-      <span class="normal">(Type ownerType, Type rawType, Type... typeArguments)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new parameterized type, applying <code>typeArguments</code> to
- <code>rawType</code> and enclosed by <code>ownerType</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a java.io.Serializable serializable parameterized type.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="providerOf(java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        ParameterizedType
-      </span>
-      <span class="sympad">providerOf</span>
-      <span class="normal">(Type providedType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a type modelling a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that provides elements of type
- <code>elementType</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a java.io.Serializable serializable parameterized type.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="setOf(java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        ParameterizedType
-      </span>
-      <span class="sympad">setOf</span>
-      <span class="normal">(Type elementType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a type modelling a Set whose elements are of type
- <code>elementType</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a java.io.Serializable serializable parameterized type.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="subtypeOf(java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        WildcardType
-      </span>
-      <span class="sympad">subtypeOf</span>
-      <span class="normal">(Type bound)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a type that represents an unknown type that extends <code>bound</code>.
- For example, if <code>bound</code> is <code>CharSequence.class</code>, this returns
- <code>? extends CharSequence</code>. If <code>bound</code> is <code>Object.class</code>,
- this returns <code>?</code>, which is shorthand for <code>? extends Object</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="supertypeOf(java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        WildcardType
-      </span>
-      <span class="sympad">supertypeOf</span>
-      <span class="normal">(Type bound)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a type that represents an unknown supertype of <code>bound</code>. For
- example, if <code>bound</code> is <code>String.class</code>, this returns <code>?
- super String</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/util/package-descr.html b/javadoc/com/google/inject/util/package-descr.html
deleted file mode 100755
index 572dc53..0000000
--- a/javadoc/com/google/inject/util/package-descr.html
+++ /dev/null
@@ -1,298 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.util Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.html">Modules</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Providers.html">Providers</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Types.html">Types</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.util</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<div class="jd-descr">
-<p>Helper methods for working with Guice.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/com/google/inject/util/package-summary.html b/javadoc/com/google/inject/util/package-summary.html
deleted file mode 100755
index 2193464..0000000
--- a/javadoc/com/google/inject/util/package-summary.html
+++ /dev/null
@@ -1,354 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.util
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.html">Modules</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Providers.html">Providers</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Types.html">Types</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.util</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-
-
-  <div class="jd-descr">
-  <p>Helper methods for working with Guice.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></td>
-              <td class="jd-descrcol" width="100%">See the EDSL example at <code><a href="../../../../com/google/inject/util/Modules.html#override(com.google.inject.Module...)">override()</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/util/Modules.html">Modules</a></td>
-              <td class="jd-descrcol" width="100%">Static utility methods for creating and working with instances of <code><a href="../../../../com/google/inject/Module.html">Module</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/util/Providers.html">Providers</a></td>
-              <td class="jd-descrcol" width="100%">Static utility methods for creating and working with instances of
- <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/util/Types.html">Types</a></td>
-              <td class="jd-descrcol" width="100%">Static methods for working with types.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/javadoc/current.xml b/javadoc/current.xml
deleted file mode 100755
index 32daf95..0000000
--- a/javadoc/current.xml
+++ /dev/null
@@ -1,10827 +0,0 @@
-<api>
-<package name="com.google.inject"
->
-<class name="AbstractModule"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Module">
-</implements>
-<constructor name="AbstractModule"
- type="com.google.inject.AbstractModule"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="addError"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="message" type="com.google.inject.spi.Message">
-</parameter>
-</method>
-<method name="addError"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="message" type="java.lang.String">
-</parameter>
-<parameter name="arguments" type="java.lang.Object...">
-</parameter>
-</method>
-<method name="addError"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="t" type="java.lang.Throwable">
-</parameter>
-</method>
-<method name="bind"
- return="com.google.inject.binder.LinkedBindingBuilder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="bind"
- return="com.google.inject.binder.AnnotatedBindingBuilder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="bind"
- return="com.google.inject.binder.AnnotatedBindingBuilder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="clazz" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="bindConstant"
- return="com.google.inject.binder.AnnotatedConstantBindingBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="bindInterceptor"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="classMatcher" type="com.google.inject.matcher.Matcher&lt;? super java.lang.Class&lt;?&gt;&gt;">
-</parameter>
-<parameter name="methodMatcher" type="com.google.inject.matcher.Matcher&lt;? super java.lang.reflect.Method&gt;">
-</parameter>
-<parameter name="interceptors" type="org.aopalliance.intercept.MethodInterceptor...">
-</parameter>
-</method>
-<method name="bindListener"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="typeMatcher" type="com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;">
-</parameter>
-<parameter name="listener" type="com.google.inject.spi.TypeListener">
-</parameter>
-</method>
-<method name="bindScope"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="scopeAnnotation" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-<parameter name="scope" type="com.google.inject.Scope">
-</parameter>
-</method>
-<method name="binder"
- return="com.google.inject.Binder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="configure"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="configure"
- return="void"
- abstract="false"
- native="false"
- synchronized="true"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="builder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="convertToTypes"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="typeMatcher" type="com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;">
-</parameter>
-<parameter name="converter" type="com.google.inject.spi.TypeConverter">
-</parameter>
-</method>
-<method name="currentStage"
- return="com.google.inject.Stage"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="install"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="module" type="com.google.inject.Module">
-</parameter>
-</method>
-<method name="requestInjection"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="instance" type="java.lang.Object">
-</parameter>
-</method>
-<method name="requestStaticInjection"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="types" type="java.lang.Class&lt;?&gt;...">
-</parameter>
-</method>
-<method name="requireBinding"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="requireBinding"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-</class>
-<interface name="Binder"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="addError"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="com.google.inject.spi.Message">
-</parameter>
-</method>
-<method name="addError"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="java.lang.String">
-</parameter>
-<parameter name="arguments" type="java.lang.Object...">
-</parameter>
-</method>
-<method name="addError"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="t" type="java.lang.Throwable">
-</parameter>
-</method>
-<method name="bind"
- return="com.google.inject.binder.LinkedBindingBuilder&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="bind"
- return="com.google.inject.binder.AnnotatedBindingBuilder&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="bind"
- return="com.google.inject.binder.AnnotatedBindingBuilder&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="bindConstant"
- return="com.google.inject.binder.AnnotatedConstantBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="bindInterceptor"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="classMatcher" type="com.google.inject.matcher.Matcher&lt;? super java.lang.Class&lt;?&gt;&gt;">
-</parameter>
-<parameter name="methodMatcher" type="com.google.inject.matcher.Matcher&lt;? super java.lang.reflect.Method&gt;">
-</parameter>
-<parameter name="interceptors" type="org.aopalliance.intercept.MethodInterceptor...">
-</parameter>
-</method>
-<method name="bindListener"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeMatcher" type="com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;">
-</parameter>
-<parameter name="listener" type="com.google.inject.spi.TypeListener">
-</parameter>
-</method>
-<method name="bindScope"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-<parameter name="scope" type="com.google.inject.Scope">
-</parameter>
-</method>
-<method name="convertToTypes"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeMatcher" type="com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;">
-</parameter>
-<parameter name="converter" type="com.google.inject.spi.TypeConverter">
-</parameter>
-</method>
-<method name="currentStage"
- return="com.google.inject.Stage"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="disableCircularProxies"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="install"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="module" type="com.google.inject.Module">
-</parameter>
-</method>
-<method name="newPrivateBinder"
- return="com.google.inject.PrivateBinder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="requestInjection"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="instance" type="T">
-</parameter>
-</method>
-<method name="requestInjection"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instance" type="java.lang.Object">
-</parameter>
-</method>
-<method name="requestStaticInjection"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="types" type="java.lang.Class&lt;?&gt;...">
-</parameter>
-</method>
-<method name="requireExplicitBindings"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="skipSources"
- return="com.google.inject.Binder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="classesToSkip" type="java.lang.Class...">
-</parameter>
-</method>
-<method name="withSource"
- return="com.google.inject.Binder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-</method>
-</interface>
-<interface name="Binding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<method name="acceptScopingVisitor"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.BindingScopingVisitor&lt;V&gt;">
-</parameter>
-</method>
-<method name="acceptTargetVisitor"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.BindingTargetVisitor&lt;? super T, V&gt;">
-</parameter>
-</method>
-<method name="getKey"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="BindingAnnotation"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="ConfigurationException"
- extends="java.lang.RuntimeException"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="ConfigurationException"
- type="com.google.inject.ConfigurationException"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="messages" type="java.lang.Iterable&lt;com.google.inject.spi.Message&gt;">
-</parameter>
-</constructor>
-<method name="getErrorMessages"
- return="java.util.Collection&lt;com.google.inject.spi.Message&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getPartialValue"
- return="E"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="withPartialValue"
- return="com.google.inject.ConfigurationException"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="partialValue" type="java.lang.Object">
-</parameter>
-</method>
-</class>
-<class name="CreationException"
- extends="java.lang.RuntimeException"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="CreationException"
- type="com.google.inject.CreationException"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="messages" type="java.util.Collection&lt;com.google.inject.spi.Message&gt;">
-</parameter>
-</constructor>
-<method name="getErrorMessages"
- return="java.util.Collection&lt;com.google.inject.spi.Message&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="Exposed"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="Guice"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="createInjector"
- return="com.google.inject.Injector"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="com.google.inject.Module...">
-</parameter>
-</method>
-<method name="createInjector"
- return="com.google.inject.Injector"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="stage" type="com.google.inject.Stage">
-</parameter>
-<parameter name="modules" type="com.google.inject.Module...">
-</parameter>
-</method>
-<method name="createInjector"
- return="com.google.inject.Injector"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="stage" type="com.google.inject.Stage">
-</parameter>
-<parameter name="modules" type="java.lang.Iterable&lt;? extends com.google.inject.Module&gt;">
-</parameter>
-</method>
-<method name="createInjector"
- return="com.google.inject.Injector"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="java.lang.Iterable&lt;? extends com.google.inject.Module&gt;">
-</parameter>
-</method>
-</class>
-<class name="ImplementedBy"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="Inject"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<interface name="Injector"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="createChildInjector"
- return="com.google.inject.Injector"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="com.google.inject.Module...">
-</parameter>
-</method>
-<method name="createChildInjector"
- return="com.google.inject.Injector"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="java.lang.Iterable&lt;? extends com.google.inject.Module&gt;">
-</parameter>
-</method>
-<method name="findBindingsByType"
- return="java.util.List&lt;com.google.inject.Binding&lt;T&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="getAllBindings"
- return="java.util.Map&lt;com.google.inject.Key&lt;?&gt;, com.google.inject.Binding&lt;?&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getBinding"
- return="com.google.inject.Binding&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="getBinding"
- return="com.google.inject.Binding&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="getBindings"
- return="java.util.Map&lt;com.google.inject.Key&lt;?&gt;, com.google.inject.Binding&lt;?&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getExistingBinding"
- return="com.google.inject.Binding&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="getInstance"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="getInstance"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="getParent"
- return="com.google.inject.Injector"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="getScopeBindings"
- return="java.util.Map&lt;java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;, com.google.inject.Scope&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTypeConverterBindings"
- return="java.util.Set&lt;com.google.inject.spi.TypeConverterBinding&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="injectMembers"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instance" type="java.lang.Object">
-</parameter>
-</method>
-</interface>
-<class name="Key"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="Key"
- type="com.google.inject.Key"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</constructor>
-<constructor name="Key"
- type="com.google.inject.Key"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</constructor>
-<constructor name="Key"
- type="com.google.inject.Key"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</constructor>
-<method name="equals"
- return="boolean"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="o" type="java.lang.Object">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.Key&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.Key&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.reflect.Type">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.Key&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.reflect.Type">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-<method name="getAnnotation"
- return="java.lang.annotation.Annotation"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getAnnotationType"
- return="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTypeLiteral"
- return="com.google.inject.TypeLiteral&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="hasAttributes"
- return="boolean"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="hashCode"
- return="int"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="ofType"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="ofType"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="ofType"
- return="com.google.inject.Key&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="toString"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="withoutAttributes"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="MembersInjector"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="injectMembers"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instance" type="T">
-</parameter>
-</method>
-</interface>
-<interface name="Module"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="configure"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-</interface>
-<class name="OutOfScopeException"
- extends="java.lang.RuntimeException"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="OutOfScopeException"
- type="com.google.inject.OutOfScopeException"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="java.lang.String">
-</parameter>
-</constructor>
-<constructor name="OutOfScopeException"
- type="com.google.inject.OutOfScopeException"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="java.lang.String">
-</parameter>
-<parameter name="cause" type="java.lang.Throwable">
-</parameter>
-</constructor>
-<constructor name="OutOfScopeException"
- type="com.google.inject.OutOfScopeException"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="cause" type="java.lang.Throwable">
-</parameter>
-</constructor>
-</class>
-<interface name="PrivateBinder"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binder">
-</implements>
-<method name="expose"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="expose"
- return="com.google.inject.binder.AnnotatedElementBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;?&gt;">
-</parameter>
-</method>
-<method name="expose"
- return="com.google.inject.binder.AnnotatedElementBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-<method name="skipSources"
- return="com.google.inject.PrivateBinder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="classesToSkip" type="java.lang.Class...">
-</parameter>
-</method>
-<method name="withSource"
- return="com.google.inject.PrivateBinder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-</method>
-</interface>
-<class name="PrivateModule"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Module">
-</implements>
-<constructor name="PrivateModule"
- type="com.google.inject.PrivateModule"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="addError"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="message" type="com.google.inject.spi.Message">
-</parameter>
-</method>
-<method name="addError"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="message" type="java.lang.String">
-</parameter>
-<parameter name="arguments" type="java.lang.Object...">
-</parameter>
-</method>
-<method name="addError"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="t" type="java.lang.Throwable">
-</parameter>
-</method>
-<method name="bind"
- return="com.google.inject.binder.LinkedBindingBuilder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="bind"
- return="com.google.inject.binder.AnnotatedBindingBuilder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="bind"
- return="com.google.inject.binder.AnnotatedBindingBuilder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="clazz" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="bindConstant"
- return="com.google.inject.binder.AnnotatedConstantBindingBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="bindInterceptor"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="classMatcher" type="com.google.inject.matcher.Matcher&lt;? super java.lang.Class&lt;?&gt;&gt;">
-</parameter>
-<parameter name="methodMatcher" type="com.google.inject.matcher.Matcher&lt;? super java.lang.reflect.Method&gt;">
-</parameter>
-<parameter name="interceptors" type="org.aopalliance.intercept.MethodInterceptor...">
-</parameter>
-</method>
-<method name="bindListener"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="typeMatcher" type="com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;">
-</parameter>
-<parameter name="listener" type="com.google.inject.spi.TypeListener">
-</parameter>
-</method>
-<method name="bindScope"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="scopeAnnotation" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-<parameter name="scope" type="com.google.inject.Scope">
-</parameter>
-</method>
-<method name="binder"
- return="com.google.inject.PrivateBinder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="configure"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="configure"
- return="void"
- abstract="false"
- native="false"
- synchronized="true"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="convertToTypes"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="typeMatcher" type="com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;">
-</parameter>
-<parameter name="converter" type="com.google.inject.spi.TypeConverter">
-</parameter>
-</method>
-<method name="currentStage"
- return="com.google.inject.Stage"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="expose"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="expose"
- return="com.google.inject.binder.AnnotatedElementBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;?&gt;">
-</parameter>
-</method>
-<method name="expose"
- return="com.google.inject.binder.AnnotatedElementBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="install"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="module" type="com.google.inject.Module">
-</parameter>
-</method>
-<method name="requestInjection"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="instance" type="java.lang.Object">
-</parameter>
-</method>
-<method name="requestStaticInjection"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="types" type="java.lang.Class&lt;?&gt;...">
-</parameter>
-</method>
-<method name="requireBinding"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="requireBinding"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-</class>
-<class name="ProvidedBy"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<interface name="Provider"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="javax.inject.Provider">
-</implements>
-<method name="get"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="Provides"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="ProvisionException"
- extends="java.lang.RuntimeException"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="ProvisionException"
- type="com.google.inject.ProvisionException"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="messages" type="java.lang.Iterable&lt;com.google.inject.spi.Message&gt;">
-</parameter>
-</constructor>
-<constructor name="ProvisionException"
- type="com.google.inject.ProvisionException"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="java.lang.String">
-</parameter>
-</constructor>
-<constructor name="ProvisionException"
- type="com.google.inject.ProvisionException"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="java.lang.String">
-</parameter>
-<parameter name="cause" type="java.lang.Throwable">
-</parameter>
-</constructor>
-<method name="getErrorMessages"
- return="java.util.Collection&lt;com.google.inject.spi.Message&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="Scope"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="scope"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-<parameter name="unscoped" type="com.google.inject.Provider&lt;T&gt;">
-</parameter>
-</method>
-<method name="toString"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="ScopeAnnotation"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="Scopes"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="isSingleton"
- return="boolean"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.Binding&lt;?&gt;">
-</parameter>
-</method>
-<field name="NO_SCOPE"
- type="com.google.inject.Scope"
- transient="false"
- volatile="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-<field name="SINGLETON"
- type="com.google.inject.Scope"
- transient="false"
- volatile="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-</class>
-<class name="Singleton"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="Stage"
- extends="java.lang.Enum"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="valueOf"
- return="com.google.inject.Stage"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-<method name="values"
- return="com.google.inject.Stage[]"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="TypeLiteral"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="TypeLiteral"
- type="com.google.inject.TypeLiteral"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</constructor>
-<method name="equals"
- return="boolean"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="o" type="java.lang.Object">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.TypeLiteral&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.TypeLiteral&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="getExceptionTypes"
- return="java.util.List&lt;com.google.inject.TypeLiteral&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="methodOrConstructor" type="java.lang.reflect.Member">
-</parameter>
-</method>
-<method name="getFieldType"
- return="com.google.inject.TypeLiteral&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="field" type="java.lang.reflect.Field">
-</parameter>
-</method>
-<method name="getParameterTypes"
- return="java.util.List&lt;com.google.inject.TypeLiteral&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="methodOrConstructor" type="java.lang.reflect.Member">
-</parameter>
-</method>
-<method name="getRawType"
- return="java.lang.Class&lt;? super T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getReturnType"
- return="com.google.inject.TypeLiteral&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="method" type="java.lang.reflect.Method">
-</parameter>
-</method>
-<method name="getSupertype"
- return="com.google.inject.TypeLiteral&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="supertype" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-<method name="getType"
- return="java.lang.reflect.Type"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="hashCode"
- return="int"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="toString"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-</package>
-<package name="com.google.inject.assistedinject"
->
-<class name="Assisted"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="AssistedInject"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<interface name="AssistedInjectBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="getAssistedMethods"
- return="java.util.Collection&lt;com.google.inject.assistedinject.AssistedMethod&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getKey"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="AssistedInjectTargetVisitor"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.BindingTargetVisitor">
-</implements>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="assistedInjectBinding" type="com.google.inject.assistedinject.AssistedInjectBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-</interface>
-<interface name="AssistedMethod"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="getDependencies"
- return="java.util.Set&lt;com.google.inject.spi.Dependency&lt;?&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getFactoryMethod"
- return="java.lang.reflect.Method"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getImplementationConstructor"
- return="java.lang.reflect.Constructor&lt;?&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getImplementationType"
- return="com.google.inject.TypeLiteral&lt;?&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="FactoryModuleBuilder"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="FactoryModuleBuilder"
- type="com.google.inject.assistedinject.FactoryModuleBuilder"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="build"
- return="com.google.inject.Module"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="factoryInterface" type="com.google.inject.Key&lt;F&gt;">
-</parameter>
-</method>
-<method name="build"
- return="com.google.inject.Module"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="factoryInterface" type="com.google.inject.TypeLiteral&lt;F&gt;">
-</parameter>
-</method>
-<method name="build"
- return="com.google.inject.Module"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="factoryInterface" type="java.lang.Class&lt;F&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-<parameter name="target" type="com.google.inject.TypeLiteral&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-<parameter name="target" type="java.lang.Class&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="target" type="com.google.inject.TypeLiteral&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="target" type="java.lang.Class&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-<parameter name="target" type="com.google.inject.TypeLiteral&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-<parameter name="target" type="java.lang.Class&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-<parameter name="target" type="com.google.inject.TypeLiteral&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-<parameter name="target" type="java.lang.Class&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="target" type="com.google.inject.TypeLiteral&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="target" type="java.lang.Class&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-<parameter name="target" type="com.google.inject.TypeLiteral&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-<parameter name="target" type="java.lang.Class&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-<parameter name="target" type="com.google.inject.TypeLiteral&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-<parameter name="target" type="java.lang.Class&lt;? extends T&gt;">
-</parameter>
-</method>
-</class>
-<class name="FactoryProvider"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.HasDependencies">
-</implements>
-<implements name="com.google.inject.Provider">
-</implements>
-<method name="get"
- return="F"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getDependencies"
- return="java.util.Set&lt;com.google.inject.spi.Dependency&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="newFactory"
- return="com.google.inject.Provider&lt;F&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="factoryType" type="com.google.inject.TypeLiteral&lt;F&gt;">
-</parameter>
-<parameter name="implementationType" type="com.google.inject.TypeLiteral&lt;?&gt;">
-</parameter>
-</method>
-<method name="newFactory"
- return="com.google.inject.Provider&lt;F&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="factoryType" type="java.lang.Class&lt;F&gt;">
-</parameter>
-<parameter name="implementationType" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.binder"
->
-<interface name="AnnotatedBindingBuilder"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.binder.LinkedBindingBuilder">
-</implements>
-<method name="annotatedWith"
- return="com.google.inject.binder.LinkedBindingBuilder&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="annotatedWith"
- return="com.google.inject.binder.LinkedBindingBuilder&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-</interface>
-<interface name="AnnotatedConstantBindingBuilder"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="annotatedWith"
- return="com.google.inject.binder.ConstantBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="annotatedWith"
- return="com.google.inject.binder.ConstantBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-</interface>
-<interface name="AnnotatedElementBuilder"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="annotatedWith"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="annotatedWith"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-</interface>
-<interface name="ConstantBindingBuilder"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="E">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="boolean">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="byte">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="char">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="double">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="float">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="int">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="java.lang.String">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="long">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="short">
-</parameter>
-</method>
-</interface>
-<interface name="LinkedBindingBuilder"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.binder.ScopedBindingBuilder">
-</implements>
-<method name="to"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="targetKey" type="com.google.inject.Key&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="to"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="implementation" type="com.google.inject.TypeLiteral&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="to"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="implementation" type="java.lang.Class&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="toConstructor"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="constructor" type="java.lang.reflect.Constructor&lt;S&gt;">
-</parameter>
-</method>
-<method name="toConstructor"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="constructor" type="java.lang.reflect.Constructor&lt;S&gt;">
-</parameter>
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;? extends S&gt;">
-</parameter>
-</method>
-<method name="toInstance"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instance" type="T">
-</parameter>
-</method>
-<method name="toProvider"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="providerKey" type="com.google.inject.Key&lt;? extends javax.inject.Provider&lt;? extends T&gt;&gt;">
-</parameter>
-</method>
-<method name="toProvider"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="provider" type="com.google.inject.Provider&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="toProvider"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="providerType" type="com.google.inject.TypeLiteral&lt;? extends javax.inject.Provider&lt;? extends T&gt;&gt;">
-</parameter>
-</method>
-<method name="toProvider"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="providerType" type="java.lang.Class&lt;? extends javax.inject.Provider&lt;? extends T&gt;&gt;">
-</parameter>
-</method>
-</interface>
-<interface name="ScopedBindingBuilder"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="asEagerSingleton"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="in"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="scope" type="com.google.inject.Scope">
-</parameter>
-</method>
-<method name="in"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="scopeAnnotation" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-</interface>
-</package>
-<package name="com.google.inject.grapher"
->
-<interface name="BindingEdge"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="setType"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.grapher.BindingEdge.Type">
-</parameter>
-</method>
-</interface>
-<interface name="BindingEdge.Factory"
- abstract="true"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="newBindingEdge"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="fromId" type="K">
-</parameter>
-<parameter name="toId" type="K">
-</parameter>
-</method>
-</interface>
-<class name="BindingEdge.Type"
- extends="java.lang.Enum"
- abstract="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="valueOf"
- return="com.google.inject.grapher.BindingEdge.Type"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-<method name="values"
- return="com.google.inject.grapher.BindingEdge.Type[]"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="DependencyEdge"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</interface>
-<interface name="DependencyEdge.Factory"
- abstract="true"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="newDependencyEdge"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="fromId" type="K">
-</parameter>
-<parameter name="fromPoint" type="com.google.inject.spi.InjectionPoint">
-</parameter>
-<parameter name="toId" type="K">
-</parameter>
-</method>
-</interface>
-<class name="GrapherModule"
- extends="com.google.inject.AbstractModule"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="GrapherModule"
- type="com.google.inject.grapher.GrapherModule"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="configure"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-</class>
-<class name="GraphingVisitor"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.BindingTargetVisitor">
-</implements>
-<constructor name="GraphingVisitor"
- type="com.google.inject.grapher.GraphingVisitor"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="idFactory" type="com.google.inject.grapher.NodeIdFactory&lt;K&gt;">
-</parameter>
-<parameter name="interfaceNodeFactory" type="com.google.inject.grapher.InterfaceNode.Factory&lt;K, N&gt;">
-</parameter>
-<parameter name="implementationNodeFactory" type="com.google.inject.grapher.ImplementationNode.Factory&lt;K, M&gt;">
-</parameter>
-<parameter name="bindingEdgeFactory" type="com.google.inject.grapher.BindingEdge.Factory&lt;K, B&gt;">
-</parameter>
-<parameter name="dependencyEdgeFactory" type="com.google.inject.grapher.DependencyEdge.Factory&lt;K, D&gt;">
-</parameter>
-<parameter name="nodeAliasFactory" type="com.google.inject.grapher.NodeAliasFactory&lt;K&gt;">
-</parameter>
-</constructor>
-<method name="getClassNodeId"
- return="K"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="binding" type="com.google.inject.Binding&lt;?&gt;">
-</parameter>
-</method>
-<method name="getInstanceNodeId"
- return="K"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="binding" type="com.google.inject.Binding&lt;?&gt;">
-</parameter>
-</method>
-<method name="newBindingEdge"
- return="B"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="nodeId" type="K">
-</parameter>
-<parameter name="toId" type="K">
-</parameter>
-<parameter name="type" type="com.google.inject.grapher.BindingEdge.Type">
-</parameter>
-</method>
-<method name="newClassImplementationNode"
- return="M"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="binding" type="com.google.inject.Binding&lt;?&gt;">
-</parameter>
-<parameter name="constructorInjectionPoint" type="com.google.inject.spi.InjectionPoint">
-</parameter>
-<parameter name="memberInjectionPoints" type="java.util.Collection&lt;com.google.inject.spi.InjectionPoint&gt;">
-</parameter>
-</method>
-<method name="newDependencyEdge"
- return="D"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="nodeId" type="K">
-</parameter>
-<parameter name="injectionPoint" type="com.google.inject.spi.InjectionPoint">
-</parameter>
-<parameter name="dependency" type="com.google.inject.spi.Dependency&lt;?&gt;">
-</parameter>
-</method>
-<method name="newDependencyEdges"
- return="java.util.Collection&lt;D&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="nodeId" type="K">
-</parameter>
-<parameter name="node" type="M">
-</parameter>
-<parameter name="dependencies" type="java.util.Collection&lt;com.google.inject.spi.Dependency&lt;?&gt;&gt;">
-</parameter>
-</method>
-<method name="newInstanceImplementationNode"
- return="M"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="binding" type="com.google.inject.Binding&lt;?&gt;">
-</parameter>
-<parameter name="instance" type="java.lang.Object">
-</parameter>
-</method>
-<method name="newInterfaceNode"
- return="N"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="binding" type="com.google.inject.Binding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.lang.Void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ConstructorBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.lang.Void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ConvertedConstantBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.lang.Void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ExposedBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.lang.Void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.InstanceBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.lang.Void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.LinkedKeyBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.lang.Void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ProviderBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.lang.Void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ProviderInstanceBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.lang.Void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ProviderKeyBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.lang.Void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.UntargettedBinding&lt;?&gt;">
-</parameter>
-</method>
-</class>
-<interface name="ImplementationNode"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="addMember"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="member" type="java.lang.reflect.Member">
-</parameter>
-</method>
-<method name="setClassKey"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="setInstance"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instance" type="java.lang.Object">
-</parameter>
-</method>
-<method name="setSource"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-</method>
-</interface>
-<interface name="ImplementationNode.Factory"
- abstract="true"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="newImplementationNode"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="nodeId" type="K">
-</parameter>
-</method>
-</interface>
-<class name="InjectorGrapher"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="InjectorGrapher"
- type="com.google.inject.grapher.InjectorGrapher"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="keyVisitor" type="com.google.inject.spi.BindingTargetVisitor&lt;java.lang.Object, java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;&gt;">
-</parameter>
-<parameter name="graphingVisitor" type="com.google.inject.spi.BindingTargetVisitor&lt;java.lang.Object, java.lang.Void&gt;">
-</parameter>
-<parameter name="renderer" type="com.google.inject.grapher.Renderer">
-</parameter>
-</constructor>
-<method name="graph"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<exception name="IOException" type="java.io.IOException">
-</exception>
-</method>
-<method name="of"
- return="com.google.inject.grapher.InjectorGrapher"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="injector" type="com.google.inject.Injector">
-</parameter>
-</method>
-<method name="rootedAt"
- return="com.google.inject.grapher.InjectorGrapher"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="classes" type="java.lang.Class&lt;?&gt;...">
-</parameter>
-</method>
-</class>
-<interface name="InterfaceNode"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="setKey"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="setSource"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-</method>
-</interface>
-<interface name="InterfaceNode.Factory"
- abstract="true"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="newInterfaceNode"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="nodeId" type="K">
-</parameter>
-</method>
-</interface>
-<interface name="NameFactory"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="getAnnotationName"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="getClassName"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="getInstanceName"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instance" type="java.lang.Object">
-</parameter>
-</method>
-<method name="getMemberName"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="member" type="java.lang.reflect.Member">
-</parameter>
-</method>
-<method name="getSourceName"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-</method>
-</interface>
-<interface name="NodeAliasFactory"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="newAlias"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="fromId" type="K">
-</parameter>
-<parameter name="toId" type="K">
-</parameter>
-</method>
-</interface>
-<interface name="NodeIdFactory"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="getClassNodeId"
- return="K"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="getInstanceNodeId"
- return="K"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-</interface>
-<interface name="Renderer"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="render"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<exception name="IOException" type="java.io.IOException">
-</exception>
-</method>
-</interface>
-<class name="ShortNameFactory"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.grapher.NameFactory">
-</implements>
-<constructor name="ShortNameFactory"
- type="com.google.inject.grapher.ShortNameFactory"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="getAnnotationName"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="getClassName"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="getFileString"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="stackTraceElement" type="java.lang.StackTraceElement">
-</parameter>
-</method>
-<method name="getInstanceName"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instance" type="java.lang.Object">
-</parameter>
-</method>
-<method name="getMemberName"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="member" type="java.lang.reflect.Member">
-</parameter>
-</method>
-<method name="getMethodString"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="method" type="java.lang.reflect.Method">
-</parameter>
-</method>
-<method name="getSourceName"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-</method>
-</class>
-<class name="StringNodeIdFactory"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.grapher.NodeIdFactory">
-</implements>
-<constructor name="StringNodeIdFactory"
- type="com.google.inject.grapher.StringNodeIdFactory"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="getClassNodeId"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="getInstanceNodeId"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-</class>
-<class name="TransitiveDependencyVisitor"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.BindingTargetVisitor">
-</implements>
-<constructor name="TransitiveDependencyVisitor"
- type="com.google.inject.grapher.TransitiveDependencyVisitor"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="visit"
- return="java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ConstructorBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ConvertedConstantBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ExposedBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.InstanceBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.LinkedKeyBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ProviderBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ProviderInstanceBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ProviderKeyBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.UntargettedBinding&lt;?&gt;">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.grapher.graphviz"
->
-<class name="ArrowType"
- extends="java.lang.Enum"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="valueOf"
- return="com.google.inject.grapher.graphviz.ArrowType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-<method name="values"
- return="com.google.inject.grapher.graphviz.ArrowType[]"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="BindingEdgeFactory"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.grapher.BindingEdge.Factory">
-</implements>
-<constructor name="BindingEdgeFactory"
- type="com.google.inject.grapher.graphviz.BindingEdgeFactory"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="renderer" type="com.google.inject.grapher.graphviz.GraphvizRenderer">
-</parameter>
-</constructor>
-<method name="newAdaptor"
- return="com.google.inject.grapher.graphviz.BindingEdgeFactory.GraphvizEdgeAdaptor"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="edge" type="com.google.inject.grapher.graphviz.GraphvizEdge">
-</parameter>
-</method>
-<method name="newBindingEdge"
- return="com.google.inject.grapher.BindingEdge&lt;java.lang.String&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="fromId" type="java.lang.String">
-</parameter>
-<parameter name="toId" type="java.lang.String">
-</parameter>
-</method>
-</class>
-<class name="BindingEdgeFactory.GraphvizEdgeAdaptor"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<implements name="com.google.inject.grapher.BindingEdge">
-</implements>
-<constructor name="BindingEdgeFactory.GraphvizEdgeAdaptor"
- type="com.google.inject.grapher.graphviz.BindingEdgeFactory.GraphvizEdgeAdaptor"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="edge" type="com.google.inject.grapher.graphviz.GraphvizEdge">
-</parameter>
-</constructor>
-<method name="setType"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.grapher.BindingEdge.Type">
-</parameter>
-</method>
-<field name="edge"
- type="com.google.inject.grapher.graphviz.GraphvizEdge"
- transient="false"
- volatile="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</field>
-</class>
-<class name="CompassPoint"
- extends="java.lang.Enum"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="valueOf"
- return="com.google.inject.grapher.graphviz.CompassPoint"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-<method name="values"
- return="com.google.inject.grapher.graphviz.CompassPoint[]"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="DependencyEdgeFactory"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.grapher.DependencyEdge.Factory">
-</implements>
-<constructor name="DependencyEdgeFactory"
- type="com.google.inject.grapher.graphviz.DependencyEdgeFactory"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="renderer" type="com.google.inject.grapher.graphviz.GraphvizRenderer">
-</parameter>
-<parameter name="portIdFactory" type="com.google.inject.grapher.graphviz.PortIdFactory">
-</parameter>
-</constructor>
-<method name="newAdaptor"
- return="com.google.inject.grapher.graphviz.DependencyEdgeFactory.GraphvizEdgeAdaptor"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="edge" type="com.google.inject.grapher.graphviz.GraphvizEdge">
-</parameter>
-</method>
-<method name="newDependencyEdge"
- return="com.google.inject.grapher.DependencyEdge&lt;java.lang.String&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="fromId" type="java.lang.String">
-</parameter>
-<parameter name="fromPoint" type="com.google.inject.spi.InjectionPoint">
-</parameter>
-<parameter name="toId" type="java.lang.String">
-</parameter>
-</method>
-</class>
-<class name="DependencyEdgeFactory.GraphvizEdgeAdaptor"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<implements name="com.google.inject.grapher.DependencyEdge">
-</implements>
-<constructor name="DependencyEdgeFactory.GraphvizEdgeAdaptor"
- type="com.google.inject.grapher.graphviz.DependencyEdgeFactory.GraphvizEdgeAdaptor"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="edge" type="com.google.inject.grapher.graphviz.GraphvizEdge">
-</parameter>
-</constructor>
-<field name="edge"
- type="com.google.inject.grapher.graphviz.GraphvizEdge"
- transient="false"
- volatile="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</field>
-</class>
-<class name="EdgeStyle"
- extends="java.lang.Enum"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="valueOf"
- return="com.google.inject.grapher.graphviz.EdgeStyle"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-<method name="values"
- return="com.google.inject.grapher.graphviz.EdgeStyle[]"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="GraphvizEdge"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="GraphvizEdge"
- type="com.google.inject.grapher.graphviz.GraphvizEdge"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="tailNodeId" type="java.lang.String">
-</parameter>
-<parameter name="headNodeId" type="java.lang.String">
-</parameter>
-</constructor>
-<method name="getArrowHead"
- return="java.util.List&lt;com.google.inject.grapher.graphviz.ArrowType&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getArrowTail"
- return="java.util.List&lt;com.google.inject.grapher.graphviz.ArrowType&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getHeadCompassPoint"
- return="com.google.inject.grapher.graphviz.CompassPoint"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getHeadNodeId"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getHeadPortId"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getStyle"
- return="com.google.inject.grapher.graphviz.EdgeStyle"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTailCompassPoint"
- return="com.google.inject.grapher.graphviz.CompassPoint"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTailNodeId"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTailPortId"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="setArrowHead"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="arrowHead" type="java.util.List&lt;com.google.inject.grapher.graphviz.ArrowType&gt;">
-</parameter>
-</method>
-<method name="setArrowTail"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="arrowTail" type="java.util.List&lt;com.google.inject.grapher.graphviz.ArrowType&gt;">
-</parameter>
-</method>
-<method name="setHeadCompassPoint"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="headCompassPoint" type="com.google.inject.grapher.graphviz.CompassPoint">
-</parameter>
-</method>
-<method name="setHeadPortId"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="headPortId" type="java.lang.String">
-</parameter>
-</method>
-<method name="setStyle"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="style" type="com.google.inject.grapher.graphviz.EdgeStyle">
-</parameter>
-</method>
-<method name="setTailCompassPoint"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="tailCompassPoint" type="com.google.inject.grapher.graphviz.CompassPoint">
-</parameter>
-</method>
-<method name="setTailPortId"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="tailPortId" type="java.lang.String">
-</parameter>
-</method>
-</class>
-<class name="GraphvizModule"
- extends="com.google.inject.AbstractModule"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="GraphvizModule"
- type="com.google.inject.grapher.graphviz.GraphvizModule"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="configure"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-</class>
-<class name="GraphvizNode"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="GraphvizNode"
- type="com.google.inject.grapher.graphviz.GraphvizNode"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="nodeId" type="java.lang.String">
-</parameter>
-</constructor>
-<method name="addField"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="portId" type="java.lang.String">
-</parameter>
-<parameter name="title" type="java.lang.String">
-</parameter>
-</method>
-<method name="addSubtitle"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="position" type="int">
-</parameter>
-<parameter name="subtitle" type="java.lang.String">
-</parameter>
-</method>
-<method name="getFields"
- return="java.util.Map&lt;java.lang.String, java.lang.String&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getHeaderBackgroundColor"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getHeaderTextColor"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getNodeId"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getShape"
- return="com.google.inject.grapher.graphviz.NodeShape"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getStyle"
- return="com.google.inject.grapher.graphviz.NodeStyle"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSubtitles"
- return="java.util.List&lt;java.lang.String&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTitle"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="setHeaderBackgroundColor"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="headerBackgroundColor" type="java.lang.String">
-</parameter>
-</method>
-<method name="setHeaderTextColor"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="headerTextColor" type="java.lang.String">
-</parameter>
-</method>
-<method name="setShape"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="shape" type="com.google.inject.grapher.graphviz.NodeShape">
-</parameter>
-</method>
-<method name="setStyle"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="style" type="com.google.inject.grapher.graphviz.NodeStyle">
-</parameter>
-</method>
-<method name="setTitle"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="title" type="java.lang.String">
-</parameter>
-</method>
-</class>
-<class name="GraphvizRenderer"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.grapher.NodeAliasFactory">
-</implements>
-<implements name="com.google.inject.grapher.Renderer">
-</implements>
-<constructor name="GraphvizRenderer"
- type="com.google.inject.grapher.graphviz.GraphvizRenderer"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="addEdge"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="edge" type="com.google.inject.grapher.graphviz.GraphvizEdge">
-</parameter>
-</method>
-<method name="addNode"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="node" type="com.google.inject.grapher.graphviz.GraphvizNode">
-</parameter>
-</method>
-<method name="finish"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="getArrowString"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="arrows" type="java.util.List&lt;com.google.inject.grapher.graphviz.ArrowType&gt;">
-</parameter>
-</method>
-<method name="getEdgeAttributes"
- return="java.util.Map&lt;java.lang.String, java.lang.String&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="edge" type="com.google.inject.grapher.graphviz.GraphvizEdge">
-</parameter>
-</method>
-<method name="getEdgeEndPoint"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="nodeId" type="java.lang.String">
-</parameter>
-<parameter name="portId" type="java.lang.String">
-</parameter>
-<parameter name="compassPoint" type="com.google.inject.grapher.graphviz.CompassPoint">
-</parameter>
-</method>
-<method name="getGraphAttributes"
- return="java.util.Map&lt;java.lang.String, java.lang.String&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="getNodeAttributes"
- return="java.util.Map&lt;java.lang.String, java.lang.String&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="node" type="com.google.inject.grapher.graphviz.GraphvizNode">
-</parameter>
-</method>
-<method name="getNodeLabel"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="node" type="com.google.inject.grapher.graphviz.GraphvizNode">
-</parameter>
-</method>
-<method name="htmlEscape"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="str" type="java.lang.String">
-</parameter>
-</method>
-<method name="newAlias"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="fromId" type="java.lang.String">
-</parameter>
-<parameter name="toId" type="java.lang.String">
-</parameter>
-</method>
-<method name="render"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="renderEdge"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="edge" type="com.google.inject.grapher.graphviz.GraphvizEdge">
-</parameter>
-</method>
-<method name="renderNode"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="node" type="com.google.inject.grapher.graphviz.GraphvizNode">
-</parameter>
-</method>
-<method name="resolveAlias"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="id" type="java.lang.String">
-</parameter>
-</method>
-<method name="setOut"
- return="com.google.inject.grapher.graphviz.GraphvizRenderer"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="out" type="java.io.PrintWriter">
-</parameter>
-</method>
-<method name="setRankdir"
- return="com.google.inject.grapher.graphviz.GraphvizRenderer"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="rankdir" type="java.lang.String">
-</parameter>
-</method>
-<method name="start"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-</class>
-<class name="ImplementationNodeFactory"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.grapher.ImplementationNode.Factory">
-</implements>
-<constructor name="ImplementationNodeFactory"
- type="com.google.inject.grapher.graphviz.ImplementationNodeFactory"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="renderer" type="com.google.inject.grapher.graphviz.GraphvizRenderer">
-</parameter>
-<parameter name="nameFactory" type="com.google.inject.grapher.NameFactory">
-</parameter>
-<parameter name="portIdFactory" type="com.google.inject.grapher.graphviz.PortIdFactory">
-</parameter>
-</constructor>
-<method name="newAdaptor"
- return="com.google.inject.grapher.graphviz.ImplementationNodeFactory.GraphvizNodeAdaptor"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="node" type="com.google.inject.grapher.graphviz.GraphvizNode">
-</parameter>
-</method>
-<method name="newImplementationNode"
- return="com.google.inject.grapher.ImplementationNode&lt;java.lang.String&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="nodeId" type="java.lang.String">
-</parameter>
-</method>
-</class>
-<class name="ImplementationNodeFactory.GraphvizNodeAdaptor"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<implements name="com.google.inject.grapher.ImplementationNode">
-</implements>
-<constructor name="ImplementationNodeFactory.GraphvizNodeAdaptor"
- type="com.google.inject.grapher.graphviz.ImplementationNodeFactory.GraphvizNodeAdaptor"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="node" type="com.google.inject.grapher.graphviz.GraphvizNode">
-</parameter>
-</constructor>
-<method name="addMember"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="member" type="java.lang.reflect.Member">
-</parameter>
-</method>
-<method name="setClassKey"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="setInstance"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instance" type="java.lang.Object">
-</parameter>
-</method>
-<method name="setSource"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-</method>
-<field name="node"
- type="com.google.inject.grapher.graphviz.GraphvizNode"
- transient="false"
- volatile="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</field>
-</class>
-<class name="InterfaceNodeFactory"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.grapher.InterfaceNode.Factory">
-</implements>
-<constructor name="InterfaceNodeFactory"
- type="com.google.inject.grapher.graphviz.InterfaceNodeFactory"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="renderer" type="com.google.inject.grapher.graphviz.GraphvizRenderer">
-</parameter>
-<parameter name="nameFactory" type="com.google.inject.grapher.NameFactory">
-</parameter>
-</constructor>
-<method name="newInterfaceNode"
- return="com.google.inject.grapher.InterfaceNode&lt;java.lang.String&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="nodeId" type="java.lang.String">
-</parameter>
-</method>
-</class>
-<class name="InterfaceNodeFactory.GraphvizNodeAdaptor"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<implements name="com.google.inject.grapher.InterfaceNode">
-</implements>
-<constructor name="InterfaceNodeFactory.GraphvizNodeAdaptor"
- type="com.google.inject.grapher.graphviz.InterfaceNodeFactory.GraphvizNodeAdaptor"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="node" type="com.google.inject.grapher.graphviz.GraphvizNode">
-</parameter>
-</constructor>
-<method name="setKey"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="setSource"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-</method>
-<field name="node"
- type="com.google.inject.grapher.graphviz.GraphvizNode"
- transient="false"
- volatile="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</field>
-</class>
-<class name="NodeShape"
- extends="java.lang.Enum"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="valueOf"
- return="com.google.inject.grapher.graphviz.NodeShape"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-<method name="values"
- return="com.google.inject.grapher.graphviz.NodeShape[]"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="NodeStyle"
- extends="java.lang.Enum"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="valueOf"
- return="com.google.inject.grapher.graphviz.NodeStyle"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-<method name="values"
- return="com.google.inject.grapher.graphviz.NodeStyle[]"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="PortIdFactory"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="getPortId"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="member" type="java.lang.reflect.Member">
-</parameter>
-</method>
-</interface>
-<class name="PortIdFactoryImpl"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.grapher.graphviz.PortIdFactory">
-</implements>
-<constructor name="PortIdFactoryImpl"
- type="com.google.inject.grapher.graphviz.PortIdFactoryImpl"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="getPortId"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="member" type="java.lang.reflect.Member">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.jndi"
->
-<class name="JndiIntegration"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="fromJndi"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.matcher"
->
-<class name="AbstractMatcher"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.matcher.Matcher">
-</implements>
-<constructor name="AbstractMatcher"
- type="com.google.inject.matcher.AbstractMatcher"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="and"
- return="com.google.inject.matcher.Matcher&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="other" type="com.google.inject.matcher.Matcher&lt;? super T&gt;">
-</parameter>
-</method>
-<method name="or"
- return="com.google.inject.matcher.Matcher&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="other" type="com.google.inject.matcher.Matcher&lt;? super T&gt;">
-</parameter>
-</method>
-</class>
-<interface name="Matcher"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="and"
- return="com.google.inject.matcher.Matcher&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="other" type="com.google.inject.matcher.Matcher&lt;? super T&gt;">
-</parameter>
-</method>
-<method name="matches"
- return="boolean"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="t" type="T">
-</parameter>
-</method>
-<method name="or"
- return="com.google.inject.matcher.Matcher&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="other" type="com.google.inject.matcher.Matcher&lt;? super T&gt;">
-</parameter>
-</method>
-</interface>
-<class name="Matchers"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="annotatedWith"
- return="com.google.inject.matcher.Matcher&lt;java.lang.reflect.AnnotatedElement&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="annotatedWith"
- return="com.google.inject.matcher.Matcher&lt;java.lang.reflect.AnnotatedElement&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-<method name="any"
- return="com.google.inject.matcher.Matcher&lt;java.lang.Object&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="identicalTo"
- return="com.google.inject.matcher.Matcher&lt;java.lang.Object&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="java.lang.Object">
-</parameter>
-</method>
-<method name="inPackage"
- return="com.google.inject.matcher.Matcher&lt;java.lang.Class&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="targetPackage" type="java.lang.Package">
-</parameter>
-</method>
-<method name="inSubpackage"
- return="com.google.inject.matcher.Matcher&lt;java.lang.Class&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="targetPackageName" type="java.lang.String">
-</parameter>
-</method>
-<method name="not"
- return="com.google.inject.matcher.Matcher&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="p" type="com.google.inject.matcher.Matcher&lt;? super T&gt;">
-</parameter>
-</method>
-<method name="only"
- return="com.google.inject.matcher.Matcher&lt;java.lang.Object&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="java.lang.Object">
-</parameter>
-</method>
-<method name="returns"
- return="com.google.inject.matcher.Matcher&lt;java.lang.reflect.Method&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="returnType" type="com.google.inject.matcher.Matcher&lt;? super java.lang.Class&lt;?&gt;&gt;">
-</parameter>
-</method>
-<method name="subclassesOf"
- return="com.google.inject.matcher.Matcher&lt;java.lang.Class&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="superclass" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.multibindings"
->
-<class name="MapBinder"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="addBinding"
- return="com.google.inject.binder.LinkedBindingBuilder&lt;V&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="K">
-</parameter>
-</method>
-<method name="newMapBinder"
- return="com.google.inject.multibindings.MapBinder&lt;K, V&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="keyType" type="com.google.inject.TypeLiteral&lt;K&gt;">
-</parameter>
-<parameter name="valueType" type="com.google.inject.TypeLiteral&lt;V&gt;">
-</parameter>
-</method>
-<method name="newMapBinder"
- return="com.google.inject.multibindings.MapBinder&lt;K, V&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="keyType" type="com.google.inject.TypeLiteral&lt;K&gt;">
-</parameter>
-<parameter name="valueType" type="com.google.inject.TypeLiteral&lt;V&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="newMapBinder"
- return="com.google.inject.multibindings.MapBinder&lt;K, V&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="keyType" type="com.google.inject.TypeLiteral&lt;K&gt;">
-</parameter>
-<parameter name="valueType" type="com.google.inject.TypeLiteral&lt;V&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-<method name="newMapBinder"
- return="com.google.inject.multibindings.MapBinder&lt;K, V&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="keyType" type="java.lang.Class&lt;K&gt;">
-</parameter>
-<parameter name="valueType" type="java.lang.Class&lt;V&gt;">
-</parameter>
-</method>
-<method name="newMapBinder"
- return="com.google.inject.multibindings.MapBinder&lt;K, V&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="keyType" type="java.lang.Class&lt;K&gt;">
-</parameter>
-<parameter name="valueType" type="java.lang.Class&lt;V&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="newMapBinder"
- return="com.google.inject.multibindings.MapBinder&lt;K, V&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="keyType" type="java.lang.Class&lt;K&gt;">
-</parameter>
-<parameter name="valueType" type="java.lang.Class&lt;V&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-<method name="permitDuplicates"
- return="com.google.inject.multibindings.MapBinder&lt;K, V&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="MapBinderBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="containsElement"
- return="boolean"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="element" type="com.google.inject.spi.Element">
-</parameter>
-</method>
-<method name="getEntries"
- return="java.util.List&lt;java.util.Map.Entry&lt;?, com.google.inject.Binding&lt;?&gt;&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getKeyTypeLiteral"
- return="com.google.inject.TypeLiteral&lt;?&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getMapKey"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getValueTypeLiteral"
- return="com.google.inject.TypeLiteral&lt;?&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="permitsDuplicates"
- return="boolean"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="Multibinder"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="addBinding"
- return="com.google.inject.binder.LinkedBindingBuilder&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="newSetBinder"
- return="com.google.inject.multibindings.Multibinder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="newSetBinder"
- return="com.google.inject.multibindings.Multibinder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="newSetBinder"
- return="com.google.inject.multibindings.Multibinder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-<method name="newSetBinder"
- return="com.google.inject.multibindings.Multibinder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="newSetBinder"
- return="com.google.inject.multibindings.Multibinder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="newSetBinder"
- return="com.google.inject.multibindings.Multibinder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-<method name="permitDuplicates"
- return="com.google.inject.multibindings.Multibinder&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="MultibinderBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="containsElement"
- return="boolean"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="element" type="com.google.inject.spi.Element">
-</parameter>
-</method>
-<method name="getElementTypeLiteral"
- return="com.google.inject.TypeLiteral&lt;?&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getElements"
- return="java.util.List&lt;com.google.inject.Binding&lt;?&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSetKey"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="permitsDuplicates"
- return="boolean"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="MultibindingsTargetVisitor"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.BindingTargetVisitor">
-</implements>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="mapbinding" type="com.google.inject.multibindings.MapBinderBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="multibinding" type="com.google.inject.multibindings.MultibinderBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-</interface>
-</package>
-<package name="com.google.inject.name"
->
-<class name="Named"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="Names"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="bindProperties"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="properties" type="java.util.Map&lt;java.lang.String, java.lang.String&gt;">
-</parameter>
-</method>
-<method name="bindProperties"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="properties" type="java.util.Properties">
-</parameter>
-</method>
-<method name="named"
- return="com.google.inject.name.Named"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.persist"
->
-<class name="PersistFilter"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="PersistFilter"
- type="com.google.inject.persist.PersistFilter"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="unitOfWork" type="com.google.inject.persist.UnitOfWork">
-</parameter>
-<parameter name="persistService" type="com.google.inject.persist.PersistService">
-</parameter>
-</constructor>
-<method name="destroy"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="doFilter"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servletRequest" type="ServletRequest">
-</parameter>
-<parameter name="servletResponse" type="ServletResponse">
-</parameter>
-<parameter name="filterChain" type="FilterChain">
-</parameter>
-<exception name="IOException" type="java.io.IOException">
-</exception>
-<exception name="ServletException" type="ServletException">
-</exception>
-</method>
-<method name="init"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="filterConfig" type="FilterConfig">
-</parameter>
-<exception name="ServletException" type="ServletException">
-</exception>
-</method>
-</class>
-<class name="PersistModule"
- extends="com.google.inject.AbstractModule"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="PersistModule"
- type="com.google.inject.persist.PersistModule"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="configure"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="configurePersistence"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="getTransactionInterceptor"
- return="org.aopalliance.intercept.MethodInterceptor"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-</class>
-<interface name="PersistService"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="start"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="stop"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="Transactional"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<interface name="UnitOfWork"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="begin"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="end"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-</package>
-<package name="com.google.inject.persist.finder"
->
-<class name="DynamicFinder"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="DynamicFinder"
- type="com.google.inject.persist.finder.DynamicFinder"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="method" type="java.lang.reflect.Method">
-</parameter>
-</constructor>
-<method name="from"
- return="com.google.inject.persist.finder.DynamicFinder"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="method" type="java.lang.reflect.Method">
-</parameter>
-</method>
-<method name="metadata"
- return="com.google.inject.persist.finder.Finder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="Finder"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="FirstResult"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="MaxResults"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-</package>
-<package name="com.google.inject.persist.jpa"
->
-<class name="JpaPersistModule"
- extends="com.google.inject.persist.PersistModule"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="JpaPersistModule"
- type="com.google.inject.persist.jpa.JpaPersistModule"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="jpaUnit" type="java.lang.String">
-</parameter>
-</constructor>
-<method name="addFinder"
- return="com.google.inject.persist.jpa.JpaPersistModule"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="iface" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="configurePersistence"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="getTransactionInterceptor"
- return="org.aopalliance.intercept.MethodInterceptor"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="properties"
- return="com.google.inject.persist.jpa.JpaPersistModule"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="properties" type="java.util.Properties">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.servlet"
->
-<class name="GuiceFilter"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="GuiceFilter"
- type="com.google.inject.servlet.GuiceFilter"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="destroy"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="doFilter"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servletRequest" type="ServletRequest">
-</parameter>
-<parameter name="servletResponse" type="ServletResponse">
-</parameter>
-<parameter name="filterChain" type="FilterChain">
-</parameter>
-<exception name="IOException" type="java.io.IOException">
-</exception>
-<exception name="ServletException" type="ServletException">
-</exception>
-</method>
-<method name="init"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="filterConfig" type="FilterConfig">
-</parameter>
-<exception name="ServletException" type="ServletException">
-</exception>
-</method>
-</class>
-<class name="GuiceServletContextListener"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="GuiceServletContextListener"
- type="com.google.inject.servlet.GuiceServletContextListener"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="contextDestroyed"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servletContextEvent" type="ServletContextEvent">
-</parameter>
-</method>
-<method name="contextInitialized"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servletContextEvent" type="ServletContextEvent">
-</parameter>
-</method>
-<method name="getInjector"
- return="com.google.inject.Injector"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-</class>
-<interface name="InstanceFilterBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.servlet.ServletModuleBinding">
-</implements>
-<method name="getFilterInstance"
- return="Filter"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="InstanceServletBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.servlet.ServletModuleBinding">
-</implements>
-<method name="getServletInstance"
- return="HttpServlet"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="LinkedFilterBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.servlet.ServletModuleBinding">
-</implements>
-<method name="getLinkedKey"
- return="com.google.inject.Key&lt;? extends Filter&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="LinkedServletBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.servlet.ServletModuleBinding">
-</implements>
-<method name="getLinkedKey"
- return="com.google.inject.Key&lt;? extends HttpServlet&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="RequestParameters"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="RequestScoped"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="ServletModule"
- extends="com.google.inject.AbstractModule"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="ServletModule"
- type="com.google.inject.servlet.ServletModule"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="configure"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="configureServlets"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="filter"
- return="com.google.inject.servlet.ServletModule.FilterKeyBindingBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="urlPattern" type="java.lang.String">
-</parameter>
-<parameter name="morePatterns" type="java.lang.String...">
-</parameter>
-</method>
-<method name="filterRegex"
- return="com.google.inject.servlet.ServletModule.FilterKeyBindingBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="regex" type="java.lang.String">
-</parameter>
-<parameter name="regexes" type="java.lang.String...">
-</parameter>
-</method>
-<method name="getServletContext"
- return="ServletContext"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="serve"
- return="com.google.inject.servlet.ServletModule.ServletKeyBindingBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="urlPattern" type="java.lang.String">
-</parameter>
-<parameter name="morePatterns" type="java.lang.String...">
-</parameter>
-</method>
-<method name="serveRegex"
- return="com.google.inject.servlet.ServletModule.ServletKeyBindingBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="regex" type="java.lang.String">
-</parameter>
-<parameter name="regexes" type="java.lang.String...">
-</parameter>
-</method>
-</class>
-<interface name="ServletModule.FilterKeyBindingBuilder"
- abstract="true"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="through"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="filter" type="Filter">
-</parameter>
-</method>
-<method name="through"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="filter" type="Filter">
-</parameter>
-<parameter name="initParams" type="java.util.Map&lt;java.lang.String, java.lang.String&gt;">
-</parameter>
-</method>
-<method name="through"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="filterKey" type="com.google.inject.Key&lt;? extends Filter&gt;">
-</parameter>
-</method>
-<method name="through"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="filterKey" type="com.google.inject.Key&lt;? extends Filter&gt;">
-</parameter>
-<parameter name="initParams" type="java.util.Map&lt;java.lang.String, java.lang.String&gt;">
-</parameter>
-</method>
-<method name="through"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="filterKey" type="java.lang.Class&lt;? extends Filter&gt;">
-</parameter>
-</method>
-<method name="through"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="filterKey" type="java.lang.Class&lt;? extends Filter&gt;">
-</parameter>
-<parameter name="initParams" type="java.util.Map&lt;java.lang.String, java.lang.String&gt;">
-</parameter>
-</method>
-</interface>
-<interface name="ServletModule.ServletKeyBindingBuilder"
- abstract="true"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="with"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servlet" type="HttpServlet">
-</parameter>
-</method>
-<method name="with"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servlet" type="HttpServlet">
-</parameter>
-<parameter name="initParams" type="java.util.Map&lt;java.lang.String, java.lang.String&gt;">
-</parameter>
-</method>
-<method name="with"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servletKey" type="com.google.inject.Key&lt;? extends HttpServlet&gt;">
-</parameter>
-</method>
-<method name="with"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servletKey" type="com.google.inject.Key&lt;? extends HttpServlet&gt;">
-</parameter>
-<parameter name="initParams" type="java.util.Map&lt;java.lang.String, java.lang.String&gt;">
-</parameter>
-</method>
-<method name="with"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servletKey" type="java.lang.Class&lt;? extends HttpServlet&gt;">
-</parameter>
-</method>
-<method name="with"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servletKey" type="java.lang.Class&lt;? extends HttpServlet&gt;">
-</parameter>
-<parameter name="initParams" type="java.util.Map&lt;java.lang.String, java.lang.String&gt;">
-</parameter>
-</method>
-</interface>
-<interface name="ServletModuleBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="getInitParams"
- return="java.util.Map&lt;java.lang.String, java.lang.String&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getPattern"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getUriPatternType"
- return="com.google.inject.servlet.UriPatternType"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="matchesUri"
- return="boolean"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="uri" type="java.lang.String">
-</parameter>
-</method>
-</interface>
-<interface name="ServletModuleTargetVisitor"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.BindingTargetVisitor">
-</implements>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.servlet.InstanceFilterBinding">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.servlet.InstanceServletBinding">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.servlet.LinkedFilterBinding">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.servlet.LinkedServletBinding">
-</parameter>
-</method>
-</interface>
-<class name="ServletScopes"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="continueRequest"
- return="java.util.concurrent.Callable&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="callable" type="java.util.concurrent.Callable&lt;T&gt;">
-</parameter>
-<parameter name="seedMap" type="java.util.Map&lt;com.google.inject.Key&lt;?&gt;, java.lang.Object&gt;">
-</parameter>
-</method>
-<method name="scopeRequest"
- return="java.util.concurrent.Callable&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="callable" type="java.util.concurrent.Callable&lt;T&gt;">
-</parameter>
-<parameter name="seedMap" type="java.util.Map&lt;com.google.inject.Key&lt;?&gt;, java.lang.Object&gt;">
-</parameter>
-</method>
-<field name="REQUEST"
- type="com.google.inject.Scope"
- transient="false"
- volatile="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-<field name="SESSION"
- type="com.google.inject.Scope"
- transient="false"
- volatile="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-</class>
-<class name="SessionScoped"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="UriPatternType"
- extends="java.lang.Enum"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="valueOf"
- return="com.google.inject.servlet.UriPatternType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-<method name="values"
- return="com.google.inject.servlet.UriPatternType[]"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-</package>
-<package name="com.google.inject.spi"
->
-<interface name="BindingScopingVisitor"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="visitEagerSingleton"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="visitNoScoping"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="visitScope"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="scope" type="com.google.inject.Scope">
-</parameter>
-</method>
-<method name="visitScopeAnnotation"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="scopeAnnotation" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-</interface>
-<interface name="BindingTargetVisitor"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ConstructorBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ConvertedConstantBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ExposedBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.InstanceBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.LinkedKeyBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ProviderBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ProviderInstanceBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ProviderKeyBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.UntargettedBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-</interface>
-<interface name="ConstructorBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binding">
-</implements>
-<implements name="com.google.inject.spi.HasDependencies">
-</implements>
-<method name="getConstructor"
- return="com.google.inject.spi.InjectionPoint"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getInjectableMembers"
- return="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getMethodInterceptors"
- return="java.util.Map&lt;java.lang.reflect.Method, java.util.List&lt;org.aopalliance.intercept.MethodInterceptor&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="ConvertedConstantBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binding">
-</implements>
-<implements name="com.google.inject.spi.HasDependencies">
-</implements>
-<method name="getDependencies"
- return="java.util.Set&lt;com.google.inject.spi.Dependency&lt;?&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSourceKey"
- return="com.google.inject.Key&lt;java.lang.String&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTypeConverterBinding"
- return="com.google.inject.spi.TypeConverterBinding"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getValue"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="DefaultBindingScopingVisitor"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.BindingScopingVisitor">
-</implements>
-<constructor name="DefaultBindingScopingVisitor"
- type="com.google.inject.spi.DefaultBindingScopingVisitor"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="visitEagerSingleton"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="visitNoScoping"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="visitOther"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="visitScope"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="scope" type="com.google.inject.Scope">
-</parameter>
-</method>
-<method name="visitScopeAnnotation"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="scopeAnnotation" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-</class>
-<class name="DefaultBindingTargetVisitor"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.BindingTargetVisitor">
-</implements>
-<constructor name="DefaultBindingTargetVisitor"
- type="com.google.inject.spi.DefaultBindingTargetVisitor"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="constructorBinding" type="com.google.inject.spi.ConstructorBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="convertedConstantBinding" type="com.google.inject.spi.ConvertedConstantBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="exposedBinding" type="com.google.inject.spi.ExposedBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instanceBinding" type="com.google.inject.spi.InstanceBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="linkedKeyBinding" type="com.google.inject.spi.LinkedKeyBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="providerBinding" type="com.google.inject.spi.ProviderBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="providerInstanceBinding" type="com.google.inject.spi.ProviderInstanceBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="providerKeyBinding" type="com.google.inject.spi.ProviderKeyBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="untargettedBinding" type="com.google.inject.spi.UntargettedBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visitOther"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="binding" type="com.google.inject.Binding&lt;? extends T&gt;">
-</parameter>
-</method>
-</class>
-<class name="DefaultElementVisitor"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.ElementVisitor">
-</implements>
-<constructor name="DefaultElementVisitor"
- type="com.google.inject.spi.DefaultElementVisitor"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.Binding&lt;T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="option" type="com.google.inject.spi.DisableCircularProxiesOption">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="injectionRequest" type="com.google.inject.spi.InjectionRequest&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="interceptorBinding" type="com.google.inject.spi.InterceptorBinding">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="lookup" type="com.google.inject.spi.MembersInjectorLookup&lt;T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="com.google.inject.spi.Message">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="privateElements" type="com.google.inject.spi.PrivateElements">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="providerLookup" type="com.google.inject.spi.ProviderLookup&lt;T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="option" type="com.google.inject.spi.RequireExplicitBindingsOption">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="scopeBinding" type="com.google.inject.spi.ScopeBinding">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="staticInjectionRequest" type="com.google.inject.spi.StaticInjectionRequest">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeConverterBinding" type="com.google.inject.spi.TypeConverterBinding">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.TypeListenerBinding">
-</parameter>
-</method>
-<method name="visitOther"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="element" type="com.google.inject.spi.Element">
-</parameter>
-</method>
-</class>
-<class name="Dependency"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="forInjectionPoints"
- return="java.util.Set&lt;com.google.inject.spi.Dependency&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="injectionPoints" type="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.spi.Dependency&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="getInjectionPoint"
- return="com.google.inject.spi.InjectionPoint"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getKey"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getParameterIndex"
- return="int"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="isNullable"
- return="boolean"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="DisableCircularProxiesOption"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="Element"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="acceptVisitor"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="ElementVisitor"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.Binding&lt;T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="option" type="com.google.inject.spi.DisableCircularProxiesOption">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="request" type="com.google.inject.spi.InjectionRequest&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.InterceptorBinding">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="lookup" type="com.google.inject.spi.MembersInjectorLookup&lt;T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="com.google.inject.spi.Message">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="elements" type="com.google.inject.spi.PrivateElements">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="lookup" type="com.google.inject.spi.ProviderLookup&lt;T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="option" type="com.google.inject.spi.RequireExplicitBindingsOption">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ScopeBinding">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="request" type="com.google.inject.spi.StaticInjectionRequest">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.TypeConverterBinding">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.TypeListenerBinding">
-</parameter>
-</method>
-</interface>
-<class name="Elements"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="Elements"
- type="com.google.inject.spi.Elements"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="getElements"
- return="java.util.List&lt;com.google.inject.spi.Element&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="com.google.inject.Module...">
-</parameter>
-</method>
-<method name="getElements"
- return="java.util.List&lt;com.google.inject.spi.Element&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="stage" type="com.google.inject.Stage">
-</parameter>
-<parameter name="modules" type="com.google.inject.Module...">
-</parameter>
-</method>
-<method name="getElements"
- return="java.util.List&lt;com.google.inject.spi.Element&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="stage" type="com.google.inject.Stage">
-</parameter>
-<parameter name="modules" type="java.lang.Iterable&lt;? extends com.google.inject.Module&gt;">
-</parameter>
-</method>
-<method name="getElements"
- return="java.util.List&lt;com.google.inject.spi.Element&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="java.lang.Iterable&lt;? extends com.google.inject.Module&gt;">
-</parameter>
-</method>
-<method name="getModule"
- return="com.google.inject.Module"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="elements" type="java.lang.Iterable&lt;? extends com.google.inject.spi.Element&gt;">
-</parameter>
-</method>
-</class>
-<interface name="ExposedBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binding">
-</implements>
-<implements name="com.google.inject.spi.HasDependencies">
-</implements>
-<method name="applyTo"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getPrivateElements"
- return="com.google.inject.spi.PrivateElements"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="HasDependencies"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="getDependencies"
- return="java.util.Set&lt;com.google.inject.spi.Dependency&lt;?&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="InjectionListener"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="afterInjection"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="injectee" type="I">
-</parameter>
-</method>
-</interface>
-<class name="InjectionPoint"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="forConstructor"
- return="com.google.inject.spi.InjectionPoint"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="constructor" type="java.lang.reflect.Constructor&lt;T&gt;">
-</parameter>
-</method>
-<method name="forConstructor"
- return="com.google.inject.spi.InjectionPoint"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="constructor" type="java.lang.reflect.Constructor&lt;T&gt;">
-</parameter>
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="forConstructorOf"
- return="com.google.inject.spi.InjectionPoint"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;?&gt;">
-</parameter>
-</method>
-<method name="forConstructorOf"
- return="com.google.inject.spi.InjectionPoint"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-<method name="forInstanceMethodsAndFields"
- return="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;?&gt;">
-</parameter>
-</method>
-<method name="forInstanceMethodsAndFields"
- return="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-<method name="forStaticMethodsAndFields"
- return="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;?&gt;">
-</parameter>
-</method>
-<method name="forStaticMethodsAndFields"
- return="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-<method name="getDeclaringType"
- return="com.google.inject.TypeLiteral&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getDependencies"
- return="java.util.List&lt;com.google.inject.spi.Dependency&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getMember"
- return="java.lang.reflect.Member"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="isOptional"
- return="boolean"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="isToolable"
- return="boolean"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="InjectionRequest"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<constructor name="InjectionRequest"
- type="com.google.inject.spi.InjectionRequest"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="instance" type="T">
-</parameter>
-</constructor>
-<method name="acceptVisitor"
- return="R"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;R&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getInjectionPoints"
- return="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<exception name="ConfigurationException" type="com.google.inject.ConfigurationException">
-</exception>
-</method>
-<method name="getInstance"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getType"
- return="com.google.inject.TypeLiteral&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="InstanceBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binding">
-</implements>
-<implements name="com.google.inject.spi.HasDependencies">
-</implements>
-<method name="getInjectionPoints"
- return="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getInstance"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="InterceptorBinding"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getClassMatcher"
- return="com.google.inject.matcher.Matcher&lt;? super java.lang.Class&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getInterceptors"
- return="java.util.List&lt;org.aopalliance.intercept.MethodInterceptor&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getMethodMatcher"
- return="com.google.inject.matcher.Matcher&lt;? super java.lang.reflect.Method&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="LinkedKeyBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binding">
-</implements>
-<method name="getLinkedKey"
- return="com.google.inject.Key&lt;? extends T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="MembersInjectorLookup"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<constructor name="MembersInjectorLookup"
- type="com.google.inject.spi.MembersInjectorLookup"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</constructor>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getDelegate"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getType"
- return="com.google.inject.TypeLiteral&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="initializeDelegate"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="delegate" type="com.google.inject.MembersInjector&lt;T&gt;">
-</parameter>
-</method>
-</class>
-<class name="Message"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<constructor name="Message"
- type="com.google.inject.spi.Message"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-<parameter name="message" type="java.lang.String">
-</parameter>
-</constructor>
-<constructor name="Message"
- type="com.google.inject.spi.Message"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="java.lang.String">
-</parameter>
-</constructor>
-<constructor name="Message"
- type="com.google.inject.spi.Message"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="sources" type="java.util.List&lt;java.lang.Object&gt;">
-</parameter>
-<parameter name="message" type="java.lang.String">
-</parameter>
-<parameter name="cause" type="java.lang.Throwable">
-</parameter>
-</constructor>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getCause"
- return="java.lang.Throwable"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getMessage"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSource"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSources"
- return="java.util.List&lt;java.lang.Object&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="PrivateElements"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<method name="getElements"
- return="java.util.List&lt;com.google.inject.spi.Element&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getExposedKeys"
- return="java.util.Set&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getExposedSource"
- return="java.lang.Object"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="getInjector"
- return="com.google.inject.Injector"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="ProviderBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binding">
-</implements>
-<method name="getProvidedKey"
- return="com.google.inject.Key&lt;?&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="ProviderInstanceBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binding">
-</implements>
-<implements name="com.google.inject.spi.HasDependencies">
-</implements>
-<method name="getInjectionPoints"
- return="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getProviderInstance"
- return="com.google.inject.Provider&lt;? extends T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="ProviderKeyBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binding">
-</implements>
-<method name="getProviderKey"
- return="com.google.inject.Key&lt;? extends javax.inject.Provider&lt;? extends T&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="ProviderLookup"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<constructor name="ProviderLookup"
- type="com.google.inject.spi.ProviderLookup"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</constructor>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getDelegate"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getKey"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="initializeDelegate"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="delegate" type="com.google.inject.Provider&lt;T&gt;">
-</parameter>
-</method>
-</class>
-<interface name="ProviderWithDependencies"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.HasDependencies">
-</implements>
-<implements name="com.google.inject.Provider">
-</implements>
-</interface>
-<interface name="ProviderWithExtensionVisitor"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Provider">
-</implements>
-<method name="acceptExtensionVisitor"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.BindingTargetVisitor&lt;B, V&gt;">
-</parameter>
-<parameter name="binding" type="com.google.inject.spi.ProviderInstanceBinding&lt;? extends B&gt;">
-</parameter>
-</method>
-</interface>
-<class name="RequireExplicitBindingsOption"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="ScopeBinding"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getAnnotationType"
- return="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getScope"
- return="com.google.inject.Scope"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="StaticInjectionRequest"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getInjectionPoints"
- return="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<exception name="ConfigurationException" type="com.google.inject.ConfigurationException">
-</exception>
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getType"
- return="java.lang.Class&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="Toolable"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<interface name="TypeConverter"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="convert"
- return="java.lang.Object"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="java.lang.String">
-</parameter>
-<parameter name="toType" type="com.google.inject.TypeLiteral&lt;?&gt;">
-</parameter>
-</method>
-</interface>
-<class name="TypeConverterBinding"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<constructor name="TypeConverterBinding"
- type="com.google.inject.spi.TypeConverterBinding"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-<parameter name="typeMatcher" type="com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;">
-</parameter>
-<parameter name="typeConverter" type="com.google.inject.spi.TypeConverter">
-</parameter>
-</constructor>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTypeConverter"
- return="com.google.inject.spi.TypeConverter"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTypeMatcher"
- return="com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="TypeEncounter"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="addError"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="com.google.inject.spi.Message">
-</parameter>
-</method>
-<method name="addError"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="java.lang.String">
-</parameter>
-<parameter name="arguments" type="java.lang.Object...">
-</parameter>
-</method>
-<method name="addError"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="t" type="java.lang.Throwable">
-</parameter>
-</method>
-<method name="bindInterceptor"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="methodMatcher" type="com.google.inject.matcher.Matcher&lt;? super java.lang.reflect.Method&gt;">
-</parameter>
-<parameter name="interceptors" type="org.aopalliance.intercept.MethodInterceptor...">
-</parameter>
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="register"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="membersInjector" type="com.google.inject.MembersInjector&lt;? super I&gt;">
-</parameter>
-</method>
-<method name="register"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="listener" type="com.google.inject.spi.InjectionListener&lt;? super I&gt;">
-</parameter>
-</method>
-</interface>
-<interface name="TypeListener"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="hear"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;I&gt;">
-</parameter>
-<parameter name="encounter" type="com.google.inject.spi.TypeEncounter&lt;I&gt;">
-</parameter>
-</method>
-</interface>
-<class name="TypeListenerBinding"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getListener"
- return="com.google.inject.spi.TypeListener"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTypeMatcher"
- return="com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="UntargettedBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binding">
-</implements>
-</interface>
-</package>
-<package name="com.google.inject.spring"
->
-<class name="SpringIntegration"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="bindAll"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="beanFactory" type="ListableBeanFactory">
-</parameter>
-</method>
-<method name="fromSpring"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.throwingproviders"
->
-<interface name="CheckedProvider"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="get"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<exception name="Exception" type="java.lang.Exception">
-</exception>
-</method>
-</interface>
-<class name="CheckedProvides"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<interface name="ThrowingProvider"
- abstract="true"
- static="false"
- final="false"
- deprecated="deprecated"
- visibility="public"
->
-<implements name="com.google.inject.throwingproviders.CheckedProvider">
-</implements>
-<method name="get"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<exception name="Exception" type="java.lang.Exception">
-</exception>
-</method>
-</interface>
-<class name="ThrowingProviderBinder"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="bind"
- return="com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder&lt;P&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="interfaceType" type="java.lang.Class&lt;P&gt;">
-</parameter>
-<parameter name="valueType" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="create"
- return="com.google.inject.throwingproviders.ThrowingProviderBinder"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="forModule"
- return="com.google.inject.Module"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="module" type="com.google.inject.Module">
-</parameter>
-</method>
-</class>
-<class name="ThrowingProviderBinder.SecondaryBinder"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="ThrowingProviderBinder.SecondaryBinder"
- type="com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="interfaceType" type="java.lang.Class&lt;P&gt;">
-</parameter>
-<parameter name="valueType" type="java.lang.reflect.Type">
-</parameter>
-</constructor>
-<method name="annotatedWith"
- return="com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder&lt;P&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="annotatedWith"
- return="com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder&lt;P&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-<method name="to"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="target" type="P">
-</parameter>
-</method>
-<method name="to"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="targetKey" type="com.google.inject.Key&lt;? extends P&gt;">
-</parameter>
-</method>
-<method name="to"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="targetType" type="java.lang.Class&lt;? extends P&gt;">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.tools.jmx"
->
-<interface name="ManagedBindingMBean"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="getKey"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getProvider"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSource"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="Manager"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="Manager"
- type="com.google.inject.tools.jmx.Manager"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="main"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="args" type="java.lang.String[]">
-</parameter>
-<exception name="Exception" type="java.lang.Exception">
-</exception>
-</method>
-<method name="manage"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="domain" type="java.lang.String">
-</parameter>
-<parameter name="injector" type="com.google.inject.Injector">
-</parameter>
-</method>
-<method name="manage"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="server" type="javax.management.MBeanServer">
-</parameter>
-<parameter name="domain" type="java.lang.String">
-</parameter>
-<parameter name="injector" type="com.google.inject.Injector">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.util"
->
-<class name="Modules"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="combine"
- return="com.google.inject.Module"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="com.google.inject.Module...">
-</parameter>
-</method>
-<method name="combine"
- return="com.google.inject.Module"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="java.lang.Iterable&lt;? extends com.google.inject.Module&gt;">
-</parameter>
-</method>
-<method name="override"
- return="com.google.inject.util.Modules.OverriddenModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="com.google.inject.Module...">
-</parameter>
-</method>
-<method name="override"
- return="com.google.inject.util.Modules.OverriddenModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="java.lang.Iterable&lt;? extends com.google.inject.Module&gt;">
-</parameter>
-</method>
-<field name="EMPTY_MODULE"
- type="com.google.inject.Module"
- transient="false"
- volatile="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-</class>
-<interface name="Modules.OverriddenModuleBuilder"
- abstract="true"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="with"
- return="com.google.inject.Module"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="overrides" type="com.google.inject.Module...">
-</parameter>
-</method>
-<method name="with"
- return="com.google.inject.Module"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="overrides" type="java.lang.Iterable&lt;? extends com.google.inject.Module&gt;">
-</parameter>
-</method>
-</interface>
-<class name="Providers"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="guicify"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="provider" type="javax.inject.Provider&lt;T&gt;">
-</parameter>
-</method>
-<method name="of"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instance" type="T">
-</parameter>
-</method>
-</class>
-<class name="Types"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="arrayOf"
- return="java.lang.reflect.GenericArrayType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="componentType" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="listOf"
- return="java.lang.reflect.ParameterizedType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="elementType" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="mapOf"
- return="java.lang.reflect.ParameterizedType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="keyType" type="java.lang.reflect.Type">
-</parameter>
-<parameter name="valueType" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="newParameterizedType"
- return="java.lang.reflect.ParameterizedType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="rawType" type="java.lang.reflect.Type">
-</parameter>
-<parameter name="typeArguments" type="java.lang.reflect.Type...">
-</parameter>
-</method>
-<method name="newParameterizedTypeWithOwner"
- return="java.lang.reflect.ParameterizedType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="ownerType" type="java.lang.reflect.Type">
-</parameter>
-<parameter name="rawType" type="java.lang.reflect.Type">
-</parameter>
-<parameter name="typeArguments" type="java.lang.reflect.Type...">
-</parameter>
-</method>
-<method name="providerOf"
- return="java.lang.reflect.ParameterizedType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="providedType" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="setOf"
- return="java.lang.reflect.ParameterizedType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="elementType" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="subtypeOf"
- return="java.lang.reflect.WildcardType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="bound" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="supertypeOf"
- return="java.lang.reflect.WildcardType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="bound" type="java.lang.reflect.Type">
-</parameter>
-</method>
-</class>
-</package>
-</api>
diff --git a/javadoc/hierarchy.html b/javadoc/hierarchy.html
deleted file mode 100755
index 244a086..0000000
--- a/javadoc/hierarchy.html
+++ /dev/null
@@ -1,1478 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<style>
-    .jd-hierarchy-spacer {
-        width: 15px;
-    }
-    .jd-hierarchy-data {
-        text-align: left;
-        vertical-align: top;
-    }
-</style>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="./favicon.ico" />
-<title>
-
-  Class Hierarchy
-
-
-| Guice
-
-</title>
-<link href="./../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="./../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="./../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("./", "./../javadoc/assets/");
-</script>
-<script src="./../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, './')"
-                      onkeyup="return search_changed(event, false, './')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="./packages.html"  >Package Index</a> | 
-                <a href="./classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-              <script>
-                /*addLoadEvent(maxPackageHeight);*/
-              </script>
-              <p style="padding:10px">Select a package to view its members</p><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="./packages.html"  >Package Index</a> | 
-            <a href="./classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("./");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="jd-header">
-<h1>Class Hierarchy</h1>
-</div>
-
-<div id="jd-content">
-
-<div style="margin-left: 20px; margin-right: 20px;">
-
-
-
-
-<table border="0" cellpadding="0" cellspacing="1">
-<th class="jd-hierarchy-data" colspan="4">Class</th>
-<th class="jd-hierarchy-data">Interfaces</th>
-
-
-<tr>
-    
-    <td class="jd-hierarchy-data" colspan="4">
-    
-        
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/AbstractModule.html">AbstractModule</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/Module.html">Module</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="2">
-    
-        <a href="./com/google/inject/grapher/GrapherModule.html">GrapherModule</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="2">
-    
-        <a href="./com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="2">
-    
-        <a href="./com/google/inject/persist/PersistModule.html">PersistModule</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="1">
-    
-        <a href="./com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="2">
-    
-        <a href="./com/google/inject/servlet/ServletModule.html">ServletModule</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/Guice.html">Guice</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/Key.html">Key</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/PrivateModule.html">PrivateModule</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/Module.html">Module</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/Scopes.html">Scopes</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/TypeLiteral.html">TypeLiteral</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/Provider.html">Provider</a>
-         &nbsp;&nbsp;
-    
-        
-            <a href="./com/google/inject/spi/HasDependencies.html">HasDependencies</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/NameFactory.html">NameFactory</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/BindingEdge.html">BindingEdge</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>
-         &nbsp;&nbsp;
-    
-        
-            <a href="./com/google/inject/grapher/Renderer.html">Renderer</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/jndi/JndiIntegration.html">JndiIntegration</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/matcher/Matcher.html">Matcher</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/matcher/Matchers.html">Matchers</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/multibindings/MapBinder.html">MapBinder</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/multibindings/Multibinder.html">Multibinder</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/name/Names.html">Names</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/persist/PersistFilter.html">PersistFilter</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/servlet/ServletScopes.html">ServletScopes</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/Dependency.html">Dependency</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/Elements.html">Elements</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/Message.html">Message</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-        
-            Serializable
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/ScopeBinding.html">ScopeBinding</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spring/SpringIntegration.html">SpringIntegration</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/tools/jmx/Manager.html">Manager</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/util/Modules.html">Modules</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/util/Providers.html">Providers</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/util/Types.html">Types</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-
-
-
-</table>
-
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
-
diff --git a/javadoc/index.html b/javadoc/index.html
deleted file mode 100755
index 7a610f3..0000000
--- a/javadoc/index.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-<head>
-<meta http-equiv="refresh" content="0;url=packages.html">
-</head>
-<body>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/javadoc/lists.js b/javadoc/lists.js
deleted file mode 100755
index 399265b..0000000
--- a/javadoc/lists.js
+++ /dev/null
@@ -1,187 +0,0 @@
-var DATA = [
-      { id:0, label:"com.google.inject", link:"com/google/inject/package-summary.html", type:"package" },
-      { id:1, label:"com.google.inject.AbstractModule", link:"com/google/inject/AbstractModule.html", type:"class" },
-      { id:2, label:"com.google.inject.Binder", link:"com/google/inject/Binder.html", type:"class" },
-      { id:3, label:"com.google.inject.Binding", link:"com/google/inject/Binding.html", type:"class" },
-      { id:4, label:"com.google.inject.BindingAnnotation", link:"com/google/inject/BindingAnnotation.html", type:"class" },
-      { id:5, label:"com.google.inject.ConfigurationException", link:"com/google/inject/ConfigurationException.html", type:"class" },
-      { id:6, label:"com.google.inject.CreationException", link:"com/google/inject/CreationException.html", type:"class" },
-      { id:7, label:"com.google.inject.Exposed", link:"com/google/inject/Exposed.html", type:"class" },
-      { id:8, label:"com.google.inject.Guice", link:"com/google/inject/Guice.html", type:"class" },
-      { id:9, label:"com.google.inject.ImplementedBy", link:"com/google/inject/ImplementedBy.html", type:"class" },
-      { id:10, label:"com.google.inject.Inject", link:"com/google/inject/Inject.html", type:"class" },
-      { id:11, label:"com.google.inject.Injector", link:"com/google/inject/Injector.html", type:"class" },
-      { id:12, label:"com.google.inject.Key", link:"com/google/inject/Key.html", type:"class" },
-      { id:13, label:"com.google.inject.MembersInjector", link:"com/google/inject/MembersInjector.html", type:"class" },
-      { id:14, label:"com.google.inject.Module", link:"com/google/inject/Module.html", type:"class" },
-      { id:15, label:"com.google.inject.OutOfScopeException", link:"com/google/inject/OutOfScopeException.html", type:"class" },
-      { id:16, label:"com.google.inject.PrivateBinder", link:"com/google/inject/PrivateBinder.html", type:"class" },
-      { id:17, label:"com.google.inject.PrivateModule", link:"com/google/inject/PrivateModule.html", type:"class" },
-      { id:18, label:"com.google.inject.ProvidedBy", link:"com/google/inject/ProvidedBy.html", type:"class" },
-      { id:19, label:"com.google.inject.Provider", link:"com/google/inject/Provider.html", type:"class" },
-      { id:20, label:"com.google.inject.Provides", link:"com/google/inject/Provides.html", type:"class" },
-      { id:21, label:"com.google.inject.ProvisionException", link:"com/google/inject/ProvisionException.html", type:"class" },
-      { id:22, label:"com.google.inject.Scope", link:"com/google/inject/Scope.html", type:"class" },
-      { id:23, label:"com.google.inject.ScopeAnnotation", link:"com/google/inject/ScopeAnnotation.html", type:"class" },
-      { id:24, label:"com.google.inject.Scopes", link:"com/google/inject/Scopes.html", type:"class" },
-      { id:25, label:"com.google.inject.Singleton", link:"com/google/inject/Singleton.html", type:"class" },
-      { id:26, label:"com.google.inject.Stage", link:"com/google/inject/Stage.html", type:"class" },
-      { id:27, label:"com.google.inject.TypeLiteral", link:"com/google/inject/TypeLiteral.html", type:"class" },
-      { id:28, label:"com.google.inject.assistedinject", link:"com/google/inject/assistedinject/package-summary.html", type:"package" },
-      { id:29, label:"com.google.inject.assistedinject.Assisted", link:"com/google/inject/assistedinject/Assisted.html", type:"class" },
-      { id:30, label:"com.google.inject.assistedinject.AssistedInject", link:"com/google/inject/assistedinject/AssistedInject.html", type:"class" },
-      { id:31, label:"com.google.inject.assistedinject.AssistedInjectBinding", link:"com/google/inject/assistedinject/AssistedInjectBinding.html", type:"class" },
-      { id:32, label:"com.google.inject.assistedinject.AssistedInjectTargetVisitor", link:"com/google/inject/assistedinject/AssistedInjectTargetVisitor.html", type:"class" },
-      { id:33, label:"com.google.inject.assistedinject.AssistedMethod", link:"com/google/inject/assistedinject/AssistedMethod.html", type:"class" },
-      { id:34, label:"com.google.inject.assistedinject.FactoryModuleBuilder", link:"com/google/inject/assistedinject/FactoryModuleBuilder.html", type:"class" },
-      { id:35, label:"com.google.inject.assistedinject.FactoryProvider", link:"com/google/inject/assistedinject/FactoryProvider.html", type:"class" },
-      { id:36, label:"com.google.inject.binder", link:"com/google/inject/binder/package-summary.html", type:"package" },
-      { id:37, label:"com.google.inject.binder.AnnotatedBindingBuilder", link:"com/google/inject/binder/AnnotatedBindingBuilder.html", type:"class" },
-      { id:38, label:"com.google.inject.binder.AnnotatedConstantBindingBuilder", link:"com/google/inject/binder/AnnotatedConstantBindingBuilder.html", type:"class" },
-      { id:39, label:"com.google.inject.binder.AnnotatedElementBuilder", link:"com/google/inject/binder/AnnotatedElementBuilder.html", type:"class" },
-      { id:40, label:"com.google.inject.binder.ConstantBindingBuilder", link:"com/google/inject/binder/ConstantBindingBuilder.html", type:"class" },
-      { id:41, label:"com.google.inject.binder.LinkedBindingBuilder", link:"com/google/inject/binder/LinkedBindingBuilder.html", type:"class" },
-      { id:42, label:"com.google.inject.binder.ScopedBindingBuilder", link:"com/google/inject/binder/ScopedBindingBuilder.html", type:"class" },
-      { id:43, label:"com.google.inject.grapher", link:"com/google/inject/grapher/package-summary.html", type:"package" },
-      { id:44, label:"com.google.inject.grapher.BindingEdge", link:"com/google/inject/grapher/BindingEdge.html", type:"class" },
-      { id:45, label:"com.google.inject.grapher.BindingEdge.Factory", link:"com/google/inject/grapher/BindingEdge.Factory.html", type:"class" },
-      { id:46, label:"com.google.inject.grapher.BindingEdge.Type", link:"com/google/inject/grapher/BindingEdge.Type.html", type:"class" },
-      { id:47, label:"com.google.inject.grapher.DependencyEdge", link:"com/google/inject/grapher/DependencyEdge.html", type:"class" },
-      { id:48, label:"com.google.inject.grapher.DependencyEdge.Factory", link:"com/google/inject/grapher/DependencyEdge.Factory.html", type:"class" },
-      { id:49, label:"com.google.inject.grapher.GrapherModule", link:"com/google/inject/grapher/GrapherModule.html", type:"class" },
-      { id:50, label:"com.google.inject.grapher.GraphingVisitor", link:"com/google/inject/grapher/GraphingVisitor.html", type:"class" },
-      { id:51, label:"com.google.inject.grapher.ImplementationNode", link:"com/google/inject/grapher/ImplementationNode.html", type:"class" },
-      { id:52, label:"com.google.inject.grapher.ImplementationNode.Factory", link:"com/google/inject/grapher/ImplementationNode.Factory.html", type:"class" },
-      { id:53, label:"com.google.inject.grapher.InjectorGrapher", link:"com/google/inject/grapher/InjectorGrapher.html", type:"class" },
-      { id:54, label:"com.google.inject.grapher.InterfaceNode", link:"com/google/inject/grapher/InterfaceNode.html", type:"class" },
-      { id:55, label:"com.google.inject.grapher.InterfaceNode.Factory", link:"com/google/inject/grapher/InterfaceNode.Factory.html", type:"class" },
-      { id:56, label:"com.google.inject.grapher.NameFactory", link:"com/google/inject/grapher/NameFactory.html", type:"class" },
-      { id:57, label:"com.google.inject.grapher.NodeAliasFactory", link:"com/google/inject/grapher/NodeAliasFactory.html", type:"class" },
-      { id:58, label:"com.google.inject.grapher.NodeIdFactory", link:"com/google/inject/grapher/NodeIdFactory.html", type:"class" },
-      { id:59, label:"com.google.inject.grapher.Renderer", link:"com/google/inject/grapher/Renderer.html", type:"class" },
-      { id:60, label:"com.google.inject.grapher.ShortNameFactory", link:"com/google/inject/grapher/ShortNameFactory.html", type:"class" },
-      { id:61, label:"com.google.inject.grapher.StringNodeIdFactory", link:"com/google/inject/grapher/StringNodeIdFactory.html", type:"class" },
-      { id:62, label:"com.google.inject.grapher.TransitiveDependencyVisitor", link:"com/google/inject/grapher/TransitiveDependencyVisitor.html", type:"class" },
-      { id:63, label:"com.google.inject.grapher.graphviz", link:"com/google/inject/grapher/graphviz/package-summary.html", type:"package" },
-      { id:64, label:"com.google.inject.grapher.graphviz.ArrowType", link:"com/google/inject/grapher/graphviz/ArrowType.html", type:"class" },
-      { id:65, label:"com.google.inject.grapher.graphviz.BindingEdgeFactory", link:"com/google/inject/grapher/graphviz/BindingEdgeFactory.html", type:"class" },
-      { id:66, label:"com.google.inject.grapher.graphviz.BindingEdgeFactory.GraphvizEdgeAdaptor", link:"com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html", type:"class" },
-      { id:67, label:"com.google.inject.grapher.graphviz.CompassPoint", link:"com/google/inject/grapher/graphviz/CompassPoint.html", type:"class" },
-      { id:68, label:"com.google.inject.grapher.graphviz.DependencyEdgeFactory", link:"com/google/inject/grapher/graphviz/DependencyEdgeFactory.html", type:"class" },
-      { id:69, label:"com.google.inject.grapher.graphviz.DependencyEdgeFactory.GraphvizEdgeAdaptor", link:"com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html", type:"class" },
-      { id:70, label:"com.google.inject.grapher.graphviz.EdgeStyle", link:"com/google/inject/grapher/graphviz/EdgeStyle.html", type:"class" },
-      { id:71, label:"com.google.inject.grapher.graphviz.GraphvizEdge", link:"com/google/inject/grapher/graphviz/GraphvizEdge.html", type:"class" },
-      { id:72, label:"com.google.inject.grapher.graphviz.GraphvizModule", link:"com/google/inject/grapher/graphviz/GraphvizModule.html", type:"class" },
-      { id:73, label:"com.google.inject.grapher.graphviz.GraphvizNode", link:"com/google/inject/grapher/graphviz/GraphvizNode.html", type:"class" },
-      { id:74, label:"com.google.inject.grapher.graphviz.GraphvizRenderer", link:"com/google/inject/grapher/graphviz/GraphvizRenderer.html", type:"class" },
-      { id:75, label:"com.google.inject.grapher.graphviz.ImplementationNodeFactory", link:"com/google/inject/grapher/graphviz/ImplementationNodeFactory.html", type:"class" },
-      { id:76, label:"com.google.inject.grapher.graphviz.ImplementationNodeFactory.GraphvizNodeAdaptor", link:"com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html", type:"class" },
-      { id:77, label:"com.google.inject.grapher.graphviz.InterfaceNodeFactory", link:"com/google/inject/grapher/graphviz/InterfaceNodeFactory.html", type:"class" },
-      { id:78, label:"com.google.inject.grapher.graphviz.InterfaceNodeFactory.GraphvizNodeAdaptor", link:"com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html", type:"class" },
-      { id:79, label:"com.google.inject.grapher.graphviz.NodeShape", link:"com/google/inject/grapher/graphviz/NodeShape.html", type:"class" },
-      { id:80, label:"com.google.inject.grapher.graphviz.NodeStyle", link:"com/google/inject/grapher/graphviz/NodeStyle.html", type:"class" },
-      { id:81, label:"com.google.inject.grapher.graphviz.PortIdFactory", link:"com/google/inject/grapher/graphviz/PortIdFactory.html", type:"class" },
-      { id:82, label:"com.google.inject.grapher.graphviz.PortIdFactoryImpl", link:"com/google/inject/grapher/graphviz/PortIdFactoryImpl.html", type:"class" },
-      { id:83, label:"com.google.inject.jndi", link:"com/google/inject/jndi/package-summary.html", type:"package" },
-      { id:84, label:"com.google.inject.jndi.JndiIntegration", link:"com/google/inject/jndi/JndiIntegration.html", type:"class" },
-      { id:85, label:"com.google.inject.matcher", link:"com/google/inject/matcher/package-summary.html", type:"package" },
-      { id:86, label:"com.google.inject.matcher.AbstractMatcher", link:"com/google/inject/matcher/AbstractMatcher.html", type:"class" },
-      { id:87, label:"com.google.inject.matcher.Matcher", link:"com/google/inject/matcher/Matcher.html", type:"class" },
-      { id:88, label:"com.google.inject.matcher.Matchers", link:"com/google/inject/matcher/Matchers.html", type:"class" },
-      { id:89, label:"com.google.inject.multibindings", link:"com/google/inject/multibindings/package-summary.html", type:"package" },
-      { id:90, label:"com.google.inject.multibindings.MapBinder", link:"com/google/inject/multibindings/MapBinder.html", type:"class" },
-      { id:91, label:"com.google.inject.multibindings.MapBinderBinding", link:"com/google/inject/multibindings/MapBinderBinding.html", type:"class" },
-      { id:92, label:"com.google.inject.multibindings.Multibinder", link:"com/google/inject/multibindings/Multibinder.html", type:"class" },
-      { id:93, label:"com.google.inject.multibindings.MultibinderBinding", link:"com/google/inject/multibindings/MultibinderBinding.html", type:"class" },
-      { id:94, label:"com.google.inject.multibindings.MultibindingsTargetVisitor", link:"com/google/inject/multibindings/MultibindingsTargetVisitor.html", type:"class" },
-      { id:95, label:"com.google.inject.name", link:"com/google/inject/name/package-summary.html", type:"package" },
-      { id:96, label:"com.google.inject.name.Named", link:"com/google/inject/name/Named.html", type:"class" },
-      { id:97, label:"com.google.inject.name.Names", link:"com/google/inject/name/Names.html", type:"class" },
-      { id:98, label:"com.google.inject.persist", link:"com/google/inject/persist/package-summary.html", type:"package" },
-      { id:99, label:"com.google.inject.persist.PersistFilter", link:"com/google/inject/persist/PersistFilter.html", type:"class" },
-      { id:100, label:"com.google.inject.persist.PersistModule", link:"com/google/inject/persist/PersistModule.html", type:"class" },
-      { id:101, label:"com.google.inject.persist.PersistService", link:"com/google/inject/persist/PersistService.html", type:"class" },
-      { id:102, label:"com.google.inject.persist.Transactional", link:"com/google/inject/persist/Transactional.html", type:"class" },
-      { id:103, label:"com.google.inject.persist.UnitOfWork", link:"com/google/inject/persist/UnitOfWork.html", type:"class" },
-      { id:104, label:"com.google.inject.persist.finder", link:"com/google/inject/persist/finder/package-summary.html", type:"package" },
-      { id:105, label:"com.google.inject.persist.finder.DynamicFinder", link:"com/google/inject/persist/finder/DynamicFinder.html", type:"class" },
-      { id:106, label:"com.google.inject.persist.finder.Finder", link:"com/google/inject/persist/finder/Finder.html", type:"class" },
-      { id:107, label:"com.google.inject.persist.finder.FirstResult", link:"com/google/inject/persist/finder/FirstResult.html", type:"class" },
-      { id:108, label:"com.google.inject.persist.finder.MaxResults", link:"com/google/inject/persist/finder/MaxResults.html", type:"class" },
-      { id:109, label:"com.google.inject.persist.jpa", link:"com/google/inject/persist/jpa/package-summary.html", type:"package" },
-      { id:110, label:"com.google.inject.persist.jpa.JpaPersistModule", link:"com/google/inject/persist/jpa/JpaPersistModule.html", type:"class" },
-      { id:111, label:"com.google.inject.servlet", link:"com/google/inject/servlet/package-summary.html", type:"package" },
-      { id:112, label:"com.google.inject.servlet.GuiceFilter", link:"com/google/inject/servlet/GuiceFilter.html", type:"class" },
-      { id:113, label:"com.google.inject.servlet.GuiceServletContextListener", link:"com/google/inject/servlet/GuiceServletContextListener.html", type:"class" },
-      { id:114, label:"com.google.inject.servlet.InstanceFilterBinding", link:"com/google/inject/servlet/InstanceFilterBinding.html", type:"class" },
-      { id:115, label:"com.google.inject.servlet.InstanceServletBinding", link:"com/google/inject/servlet/InstanceServletBinding.html", type:"class" },
-      { id:116, label:"com.google.inject.servlet.LinkedFilterBinding", link:"com/google/inject/servlet/LinkedFilterBinding.html", type:"class" },
-      { id:117, label:"com.google.inject.servlet.LinkedServletBinding", link:"com/google/inject/servlet/LinkedServletBinding.html", type:"class" },
-      { id:118, label:"com.google.inject.servlet.RequestParameters", link:"com/google/inject/servlet/RequestParameters.html", type:"class" },
-      { id:119, label:"com.google.inject.servlet.RequestScoped", link:"com/google/inject/servlet/RequestScoped.html", type:"class" },
-      { id:120, label:"com.google.inject.servlet.ServletModule", link:"com/google/inject/servlet/ServletModule.html", type:"class" },
-      { id:121, label:"com.google.inject.servlet.ServletModule.FilterKeyBindingBuilder", link:"com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html", type:"class" },
-      { id:122, label:"com.google.inject.servlet.ServletModule.ServletKeyBindingBuilder", link:"com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html", type:"class" },
-      { id:123, label:"com.google.inject.servlet.ServletModuleBinding", link:"com/google/inject/servlet/ServletModuleBinding.html", type:"class" },
-      { id:124, label:"com.google.inject.servlet.ServletModuleTargetVisitor", link:"com/google/inject/servlet/ServletModuleTargetVisitor.html", type:"class" },
-      { id:125, label:"com.google.inject.servlet.ServletScopes", link:"com/google/inject/servlet/ServletScopes.html", type:"class" },
-      { id:126, label:"com.google.inject.servlet.SessionScoped", link:"com/google/inject/servlet/SessionScoped.html", type:"class" },
-      { id:127, label:"com.google.inject.servlet.UriPatternType", link:"com/google/inject/servlet/UriPatternType.html", type:"class" },
-      { id:128, label:"com.google.inject.spi", link:"com/google/inject/spi/package-summary.html", type:"package" },
-      { id:129, label:"com.google.inject.spi.BindingScopingVisitor", link:"com/google/inject/spi/BindingScopingVisitor.html", type:"class" },
-      { id:130, label:"com.google.inject.spi.BindingTargetVisitor", link:"com/google/inject/spi/BindingTargetVisitor.html", type:"class" },
-      { id:131, label:"com.google.inject.spi.ConstructorBinding", link:"com/google/inject/spi/ConstructorBinding.html", type:"class" },
-      { id:132, label:"com.google.inject.spi.ConvertedConstantBinding", link:"com/google/inject/spi/ConvertedConstantBinding.html", type:"class" },
-      { id:133, label:"com.google.inject.spi.DefaultBindingScopingVisitor", link:"com/google/inject/spi/DefaultBindingScopingVisitor.html", type:"class" },
-      { id:134, label:"com.google.inject.spi.DefaultBindingTargetVisitor", link:"com/google/inject/spi/DefaultBindingTargetVisitor.html", type:"class" },
-      { id:135, label:"com.google.inject.spi.DefaultElementVisitor", link:"com/google/inject/spi/DefaultElementVisitor.html", type:"class" },
-      { id:136, label:"com.google.inject.spi.Dependency", link:"com/google/inject/spi/Dependency.html", type:"class" },
-      { id:137, label:"com.google.inject.spi.DisableCircularProxiesOption", link:"com/google/inject/spi/DisableCircularProxiesOption.html", type:"class" },
-      { id:138, label:"com.google.inject.spi.Element", link:"com/google/inject/spi/Element.html", type:"class" },
-      { id:139, label:"com.google.inject.spi.ElementVisitor", link:"com/google/inject/spi/ElementVisitor.html", type:"class" },
-      { id:140, label:"com.google.inject.spi.Elements", link:"com/google/inject/spi/Elements.html", type:"class" },
-      { id:141, label:"com.google.inject.spi.ExposedBinding", link:"com/google/inject/spi/ExposedBinding.html", type:"class" },
-      { id:142, label:"com.google.inject.spi.HasDependencies", link:"com/google/inject/spi/HasDependencies.html", type:"class" },
-      { id:143, label:"com.google.inject.spi.InjectionListener", link:"com/google/inject/spi/InjectionListener.html", type:"class" },
-      { id:144, label:"com.google.inject.spi.InjectionPoint", link:"com/google/inject/spi/InjectionPoint.html", type:"class" },
-      { id:145, label:"com.google.inject.spi.InjectionRequest", link:"com/google/inject/spi/InjectionRequest.html", type:"class" },
-      { id:146, label:"com.google.inject.spi.InstanceBinding", link:"com/google/inject/spi/InstanceBinding.html", type:"class" },
-      { id:147, label:"com.google.inject.spi.InterceptorBinding", link:"com/google/inject/spi/InterceptorBinding.html", type:"class" },
-      { id:148, label:"com.google.inject.spi.LinkedKeyBinding", link:"com/google/inject/spi/LinkedKeyBinding.html", type:"class" },
-      { id:149, label:"com.google.inject.spi.MembersInjectorLookup", link:"com/google/inject/spi/MembersInjectorLookup.html", type:"class" },
-      { id:150, label:"com.google.inject.spi.Message", link:"com/google/inject/spi/Message.html", type:"class" },
-      { id:151, label:"com.google.inject.spi.PrivateElements", link:"com/google/inject/spi/PrivateElements.html", type:"class" },
-      { id:152, label:"com.google.inject.spi.ProviderBinding", link:"com/google/inject/spi/ProviderBinding.html", type:"class" },
-      { id:153, label:"com.google.inject.spi.ProviderInstanceBinding", link:"com/google/inject/spi/ProviderInstanceBinding.html", type:"class" },
-      { id:154, label:"com.google.inject.spi.ProviderKeyBinding", link:"com/google/inject/spi/ProviderKeyBinding.html", type:"class" },
-      { id:155, label:"com.google.inject.spi.ProviderLookup", link:"com/google/inject/spi/ProviderLookup.html", type:"class" },
-      { id:156, label:"com.google.inject.spi.ProviderWithDependencies", link:"com/google/inject/spi/ProviderWithDependencies.html", type:"class" },
-      { id:157, label:"com.google.inject.spi.ProviderWithExtensionVisitor", link:"com/google/inject/spi/ProviderWithExtensionVisitor.html", type:"class" },
-      { id:158, label:"com.google.inject.spi.RequireExplicitBindingsOption", link:"com/google/inject/spi/RequireExplicitBindingsOption.html", type:"class" },
-      { id:159, label:"com.google.inject.spi.ScopeBinding", link:"com/google/inject/spi/ScopeBinding.html", type:"class" },
-      { id:160, label:"com.google.inject.spi.StaticInjectionRequest", link:"com/google/inject/spi/StaticInjectionRequest.html", type:"class" },
-      { id:161, label:"com.google.inject.spi.Toolable", link:"com/google/inject/spi/Toolable.html", type:"class" },
-      { id:162, label:"com.google.inject.spi.TypeConverter", link:"com/google/inject/spi/TypeConverter.html", type:"class" },
-      { id:163, label:"com.google.inject.spi.TypeConverterBinding", link:"com/google/inject/spi/TypeConverterBinding.html", type:"class" },
-      { id:164, label:"com.google.inject.spi.TypeEncounter", link:"com/google/inject/spi/TypeEncounter.html", type:"class" },
-      { id:165, label:"com.google.inject.spi.TypeListener", link:"com/google/inject/spi/TypeListener.html", type:"class" },
-      { id:166, label:"com.google.inject.spi.TypeListenerBinding", link:"com/google/inject/spi/TypeListenerBinding.html", type:"class" },
-      { id:167, label:"com.google.inject.spi.UntargettedBinding", link:"com/google/inject/spi/UntargettedBinding.html", type:"class" },
-      { id:168, label:"com.google.inject.spring", link:"com/google/inject/spring/package-summary.html", type:"package" },
-      { id:169, label:"com.google.inject.spring.SpringIntegration", link:"com/google/inject/spring/SpringIntegration.html", type:"class" },
-      { id:170, label:"com.google.inject.throwingproviders", link:"com/google/inject/throwingproviders/package-summary.html", type:"package" },
-      { id:171, label:"com.google.inject.throwingproviders.CheckedProvider", link:"com/google/inject/throwingproviders/CheckedProvider.html", type:"class" },
-      { id:172, label:"com.google.inject.throwingproviders.CheckedProvides", link:"com/google/inject/throwingproviders/CheckedProvides.html", type:"class" },
-      { id:173, label:"com.google.inject.throwingproviders.ThrowingProvider", link:"com/google/inject/throwingproviders/ThrowingProvider.html", type:"class" },
-      { id:174, label:"com.google.inject.throwingproviders.ThrowingProviderBinder", link:"com/google/inject/throwingproviders/ThrowingProviderBinder.html", type:"class" },
-      { id:175, label:"com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder", link:"com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html", type:"class" },
-      { id:176, label:"com.google.inject.tools.jmx", link:"com/google/inject/tools/jmx/package-summary.html", type:"package" },
-      { id:177, label:"com.google.inject.tools.jmx.ManagedBindingMBean", link:"com/google/inject/tools/jmx/ManagedBindingMBean.html", type:"class" },
-      { id:178, label:"com.google.inject.tools.jmx.Manager", link:"com/google/inject/tools/jmx/Manager.html", type:"class" },
-      { id:179, label:"com.google.inject.util", link:"com/google/inject/util/package-summary.html", type:"package" },
-      { id:180, label:"com.google.inject.util.Modules", link:"com/google/inject/util/Modules.html", type:"class" },
-      { id:181, label:"com.google.inject.util.Modules.OverriddenModuleBuilder", link:"com/google/inject/util/Modules.OverriddenModuleBuilder.html", type:"class" },
-      { id:182, label:"com.google.inject.util.Providers", link:"com/google/inject/util/Providers.html", type:"class" },
-      { id:183, label:"com.google.inject.util.Types", link:"com/google/inject/util/Types.html", type:"class" }
-
-    ];
diff --git a/javadoc/package-list b/javadoc/package-list
deleted file mode 100755
index c7ae018..0000000
--- a/javadoc/package-list
+++ /dev/null
@@ -1,19 +0,0 @@
-com.google.inject
-com.google.inject.assistedinject
-com.google.inject.binder
-com.google.inject.grapher
-com.google.inject.grapher.graphviz
-com.google.inject.jndi
-com.google.inject.matcher
-com.google.inject.multibindings
-com.google.inject.name
-com.google.inject.persist
-com.google.inject.persist.finder
-com.google.inject.persist.jpa
-com.google.inject.servlet
-com.google.inject.spi
-com.google.inject.spring
-com.google.inject.throwingproviders
-com.google.inject.tools.jmx
-com.google.inject.util
-
diff --git a/javadoc/packages.html b/javadoc/packages.html
deleted file mode 100755
index 8f0b543..0000000
--- a/javadoc/packages.html
+++ /dev/null
@@ -1,397 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="./favicon.ico" />
-<title>
-
-  Package Index
-
-
-| Guice
-
-</title>
-<link href="./../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="./../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="./../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("./", "./../javadoc/assets/");
-</script>
-<script src="./../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="gc-documentation">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, './')"
-                      onkeyup="return search_changed(event, false, './')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="./packages.html" class="selected" >Package Index</a> | 
-                <a href="./classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-              <script>
-                /*addLoadEvent(maxPackageHeight);*/
-              </script>
-              <p style="padding:10px">Select a package to view its members</p><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="./packages.html" class="selected" >Package Index</a> | 
-            <a href="./classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("./");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="jd-header">
-<h1>Package Index</h1>
-</div>
-
-<div id="jd-content">
-
-<div class="jd-descr">
-<p></p>
-</div>
-
-
-<table class="jd-sumtable">
-
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/package-summary.html">com.google.inject</a></td>
-        <td class="jd-descrcol" width="100%"><i>Google Guice</i> (pronounced "juice") is an ultra-lightweight dependency
- injection framework.&nbsp;</td>
-    </tr>
-
-
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></td>
-        <td class="jd-descrcol" width="100%">Extension for combining factory interfaces with injection; this extension requires <code>guice-assistedinject-3.0.jar</code>.&nbsp;</td>
-    </tr>
-
-
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/binder/package-summary.html">com.google.inject.binder</a></td>
-        <td class="jd-descrcol" width="100%">Interfaces which make up <code><a href="./com/google/inject/Binder.html">Binder</a></code>'s
- expression language.&nbsp;</td>
-    </tr>
-
-
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-
-
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-
-
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></td>
-        <td class="jd-descrcol" width="100%">JNDI integration; this extension requires <code>guice-jndi-3.0.jar</code>.&nbsp;</td>
-    </tr>
-
-
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></td>
-        <td class="jd-descrcol" width="100%">Used for matching things.&nbsp;</td>
-    </tr>
-
-
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></td>
-        <td class="jd-descrcol" width="100%">Extension for binding multiple instances in a collection; this extension requires <code>guice-multibindings-3.0.jar</code>.&nbsp;</td>
-    </tr>
-
-
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/name/package-summary.html">com.google.inject.name</a></td>
-        <td class="jd-descrcol" width="100%">Support for binding to string-based names.&nbsp;</td>
-    </tr>
-
-
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/persist/package-summary.html">com.google.inject.persist</a></td>
-        <td class="jd-descrcol" width="100%">Guice Persist: a lightweight persistence library for Guice; this extension requires <code>guice-persist-3.0.jar</code>.&nbsp;</td>
-    </tr>
-
-
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></td>
-        <td class="jd-descrcol" width="100%">Dynamic Finder API for Guice Persist.&nbsp;</td>
-    </tr>
-
-
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></td>
-        <td class="jd-descrcol" width="100%">guice-persist's Java Persistence API (JPA) support.&nbsp;</td>
-    </tr>
-
-
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></td>
-        <td class="jd-descrcol" width="100%">Servlet API scopes, bindings and registration; this extension requires <code>guice-servlet-3.0.jar</code>.&nbsp;</td>
-    </tr>
-
-
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/spi/package-summary.html">com.google.inject.spi</a></td>
-        <td class="jd-descrcol" width="100%">Guice service provider interface
-&nbsp;</td>
-    </tr>
-
-
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/spring/package-summary.html">com.google.inject.spring</a></td>
-        <td class="jd-descrcol" width="100%">Spring integration; this extension requires <code>guice-spring-3.0.jar</code>.&nbsp;</td>
-    </tr>
-
-
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></td>
-        <td class="jd-descrcol" width="100%">Extension for injecting objects that may throw at provision time; this extension requires <code>guice-throwingproviders-3.0.jar</code>.&nbsp;</td>
-    </tr>
-
-
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></td>
-        <td class="jd-descrcol" width="100%">JMX integration; this extension requires <code>guice-jmx-3.0.jar</code>.&nbsp;</td>
-    </tr>
-
-
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/util/package-summary.html">com.google.inject.util</a></td>
-        <td class="jd-descrcol" width="100%">Helper methods for working with Guice.&nbsp;</td>
-    </tr>
-
-
-</table>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/assets/android-developer-core.css b/latest-javadoc/assets/android-developer-core.css
deleted file mode 100755
index 06c5b3e..0000000
--- a/latest-javadoc/assets/android-developer-core.css
+++ /dev/null
@@ -1,1198 +0,0 @@
-/* file: android-developer-core.css
-   author: smain
-   date: september 2008
-   info: core developer styles (developer.android.com)
-*/
-
-
-/* RESET STYLES */
-
-html,body,div,h1,h2,h3,h4,h5,h6,p,img,
-dl,dt,dd,ol,ul,li,table,caption,tbody,
-tfoot,thead,tr,th,td,form,fieldset,
-embed,object,applet {
-  margin: 0;
-  padding: 0;
-  border: 0;
-}
-
-/* BASICS */
-
-html, body {
-  overflow:hidden; /* keeps scrollbar off IE */
-  background-color:#fff;
-}
-
-body {
-  font-family:arial,sans-serif;
-  color:#000;
-  font-size:13px;
-  color:#333;
-  background-image:url(images/bg_fade.jpg);
-  background-repeat:repeat-x;
-}
-
-a, a code {
-  color:#006699;
-}
-
-a:active,
-a:active code {
-  color:#f00;
-} 
-
-a:visited,
-a:visited code {
-  color:#006699;
-}
-
-input, select,
-textarea, option, label {
-  font-family:inherit;
-  font-size:inherit;
-  padding:0;
-  margin:0;
-  vertical-align:middle;
-}
-
-option {
-  padding:0 4px;
-}
-
-p {
-  padding:0;
-  margin:0 0 1em;
-}
-
-code, pre {
-  color:#007000;
-  font-family:monospace;
-  line-height:1em;
-}
-
-var {
-  color:#007000;
-  font-style:italic;
-}
-
-pre {
-  border:1px solid #ccc;
-  background-color:#fafafa;
-  padding:10px;
-  margin:0 0 1em 1em;
-  overflow:auto;
-  line-height:inherit; /* fixes vertical scrolling in webkit */
-}
-
-h1,h2,h3,h4,h5 {
-  margin:1em 0;
-  padding:0;
-}
-
-p,ul,ol,dl,dd,dt,li {
-  line-height:1.3em;
-}
-
-ul,ol {
-  margin:0 0 .8em;
-  padding:0 0 0 2em;
-}
-
-li {
-  padding:0 0 .5em;
-}
-
-dl {
-  margin:0 0 1em 0;
-  padding:0;
-}
-
-dt {
-  margin:0;
-  padding:0;
-}
-
-dd {
-  margin:0 0 1em;
-  padding:0 0 0 2em;
-}
-
-li p {
-  margin:.5em 0 0;
-}
-
-dd p {
-  margin:1em 0 0;
-}
-
-li pre, li table, li img {
-  margin:.5em 0 0 1em;
-}
-
-dd pre,
-#jd-content dd table,
-#jd-content dd img {
-  margin:1em 0 0 1em;
-}
-
-li ul,
-li ol,
-dd ul,
-dd ol {
-  margin:0;
-  padding: 0 0 0 2em;
-}
-
-li li,
-dd li {
-  margin:0;
-  padding:.5em 0 0;
-}
-
-dl dl,
-ol dl,
-ul dl {
-  margin:0 0 1em;
-  padding:0;
-}
-
-table {
-  font-size:1em;
-  margin:0 0 1em;
-  padding:0;
-  border-collapse:collapse;
-  border-width:0;
-  empty-cells:show;
-}
-
-td,th {
-  border:1px solid #ccc;
-  padding:6px 12px;
-  text-align:left;
-  vertical-align:top;
-  background-color:inherit;
-}
-
-th {
-  background-color:#dee8f1;
-}
-
-td > p:last-child {
-  margin:0;
-}
-
-hr.blue {
-  background-color:#DDF0F2;
-  border:none;
-  height:5px;
-  margin:20px 0 10px;
-}
-
-blockquote {
-  margin: 0 0 1em 1em;
-  padding: 0 4em 0 1em;
-  border-left:2px solid #eee;
-}
-/* LAYOUT */
-
-#body-content {
-  /* "Preliminary" watermark for preview releases and interim builds.
-  background:transparent url(images/preliminary.png) repeat scroll 0 0;  */
-  margin:0;
-  position:relative;
-  width:100%;
-}
-
-#header {
-  height: 44px;
-  position:relative;
-  z-index:100;
-  min-width:675px; /* min width for the tabs, before they wrap */
-  padding:0 10px;
-  border-bottom:3px solid #94b922;
-}
-
-#headerLeft{
-  position:absolute;
-  padding: 10px 0 0;
-  left:8px;
-  bottom:3px;
-}
-
-#headerRight {
-  position:absolute;
-  right:0;
-  bottom:3px;
-  padding:0;
-  text-align:right;
-}
-
-#masthead-title {
-  font-size:28px;
-  color: #2f74ae;
-}
-
-/* Tabs in the header */
-
-#header ul {
-  list-style: none;
-  margin: 7px 0 0;
-  padding: 0;
-  height: 29px;
-}
-
-#header li {
-  float: left;
-  margin: 0px 2px 0px 0px;
-  padding:0;
-}
-
-#header li a {
-  text-decoration: none;
-  display: block;
-  background-image: url(images/bg_images_sprite.png);
-  background-position: 0 -58px;
-  background-repeat: no-repeat;
-  color: #666;
-  font-size: 13px;
-  font-weight: bold;
-  width: 94px;
-  height: 29px;
-  text-align: center;
-  margin: 0px;
-}
-
-#header li a:hover {
-  background-image: url(images/bg_images_sprite.png);
-  background-position: 0 -29px;
-  background-repeat: no-repeat;
-}
-
-#header li a span {
-  position:relative;
-  top:7px;
-}
-
-#header li a span+span {
-  display:none;
-}
-
-/* tab highlighting */
-
-.home #home-link a,
-.guide #guide-link a,
-.reference #reference-link a,
-.sdk #sdk-link a,
-.resources #resources-link a,
-.videos #videos-link a {
-  background-image: url(images/bg_images_sprite.png);
-  background-position: 0 0;
-  background-repeat: no-repeat;
-  color: #fff;
-  font-weight: bold;
-  cursor:default;
-}
-
-.home #home-link a:hover,
-.guide #guide-link a:hover,
-.reference #reference-link a:hover,
-.sdk #sdk-link a:hover,
-.resources #resources-link a:hover,
-.videos #videos-link  a:hover {
-  background-image: url(images/bg_images_sprite.png);
-  background-position: 0 0;
-}
-
-#headerLinks {
-  margin:10px 10px 0 0;
-  height:13px;
-  font-size: 11px;
-  vertical-align: top;
-}
-
-#headerLinks a {
-  color: #7FA9B5;
-}
-
-#headerLinks img {
-  vertical-align:middle;
-}
-
-#language {
-  margin:0 10px 0 4px;
-}
-
-#search {
-  margin:8px 10px 0 0;
-}
-
-/* MAIN BODY */
-
-#mainBodyFluid {
-  margin: 20px 10px;
-  color:#333;
-}
-
-#mainBodyFixed {
-  margin: 20px 10px;
-  color: #333;
-  width:930px;
-  position:relative;
-}
-
-#mainBodyFixed h3,
-#mainBodyFluid h3 {
-  color:#336666;
-  font-size:1.25em;
-  margin: 0em 0em 0em 0em;
-  padding-bottom:.5em;
-}
-
-#mainBodyFixed h2,
-#mainBodyFluid h2 {
-  color:#336666;
-  font-size:1.25em;
-  margin: 0;
-  padding-bottom:.5em;
-}
-
-#mainBodyFixed h1,
-#mainBodyFluid h1 {
-  color:#435A6E;
-  font-size:1.7em;
-  margin: 1em 0;
-}
-
-#mainBodyFixed .green,
-#mainBodyFluid .green,
-#jd-content .green {
-  color:#7BB026;
-  background-color:none;
-}
-
-#mainBodyLeft {
-  float: left;
-  width: 600px;
-  margin-right: 20px;
-  color: #333;
-  position:relative;
-}
-
-div.indent {
-  margin-left: 40px;
-  margin-right: 70px;
-}
-
-#mainBodyLeft p {
-  color: #333;
-  font-size: 13px;
-}
-
-#mainBodyLeft p.blue {
-  color: #669999;
-}
-
-#mainBodyLeft #communityDiv {
-  float: left;
-  background-image:url(images/bg_community_leftDiv.jpg);
-  background-repeat: no-repeat;
-  width: 581px;
-  height: 347px;
-  padding: 20px 0px 0px 20px;
-}
-
-#mainBodyRight {
-  float: left;
-  width: 300px;
-  color: #333;
-}
-
-#mainBodyRight p {
-  padding-right: 50px;
-  color: #333;
-}
-
-#mainBodyRight table {
-  width: 100%;
-}
-
-#mainBodyRight td {
-  border:0px solid #666;
-  padding:0px 5px;
-  text-align:left;
-}
-
-#mainBodyRight td p {
-  margin:0 0 1em 0;
-}
-
-#mainBodyRight .blueBorderBox {
-  border:5px solid #ddf0f2;
-  padding:18px 18px 18px 18px;
-  text-align:left;
-}
-
-#mainBodyFixed .seperator {
-  background-image:url(images/hr_gray_side.jpg);
-  background-repeat:no-repeat;
-  width: 100%;
-  float: left;
-  clear: both;
-}
-
-#mainBodyBottom {
-  float: left;
-  width: 100%;
-  clear:both;
-  color: #333;
-}
-
-#mainBodyBottom .seperator {
-  background-image:url(images/hr_gray_main.jpg);
-  background-repeat:no-repeat;
-  width: 100%;
-  float: left;
-  clear: both;
-}
-
-/* FOOTER */
-
-#footer {
-  float: left;
-  width:90%;
-  margin: 20px;
-  color: #aaa;
-  font-size: 11px;
-}
-
-#footer a {
-  color: #aaa;
-  font-size: 11px;
-}
-
-#footer a:hover {
-  text-decoration: underline;
-  color:#aaa;
-}
-
-#footerlinks {
-  margin-top:2px;
-}
-
-#footerlinks a,
-#footerlinks a:visited {
-  color:#006699;
-}
-
-/* SEARCH FILTER */
-
-#search_autocomplete {
-  color:#aaa;
-}
-
-#search-button {
-  display:inline;
-}
-
-#search_filtered_div {
-  position:absolute;
-  margin-top:-1px;
-  z-index:101;
-  border:1px solid #BCCDF0;
-  background-color:#fff;
-}
-
-#search_filtered {
-  min-width:100%;
-}
-#search_filtered td{
-  background-color:#fff;
-  border-bottom: 1px solid #669999;
-  line-height:1.5em;
-}
-
-#search_filtered .jd-selected {
-  background-color: #94b922;
-  cursor:pointer;
-}
-#search_filtered .jd-selected,
-#search_filtered .jd-selected a {
-  color:#fff;
-}
-
-.no-display {
-  display: none;
-}
-
-.jd-autocomplete {
-  font-family: Arial, sans-serif;
-  padding-left: 6px;
-  padding-right: 6px;
-  padding-top: 1px;
-  padding-bottom: 1px;
-  font-size: 0.81em;
-  border: none;
-  margin: 0;
-  line-height: 1.05em;
-}
-
-.show-row {
-  display: table-row;
-}
-.hide-row {
-  display: hidden;
-}
-
-/* SEARCH */
-
-/* restrict global search form width */
-#searchForm {
-  width:350px;
-}
-
-#searchTxt {
-  width:200px;
-}
-
-/* disable twiddle and size selectors for left column */
-#leftSearchControl div {
-  width: 100%;
-}
-
-#leftSearchControl .gsc-twiddle {
-  background-image : none;
-}
-
-#leftSearchControl td, #searchForm td {
-  border: 0px solid #000;
-}
-
-#leftSearchControl .gsc-resultsHeader .gsc-title {
-  padding-left : 0px;
-  font-weight : bold;
-  font-size : 13px;
-  color:#006699;
-  display : none;
-}
-
-#leftSearchControl .gsc-resultsHeader div.gsc-results-selector {
-  display : none;
-}
-
-#leftSearchControl .gsc-resultsRoot {
-  padding-top : 6px;
-}
-
-#leftSearchControl div.gs-visibleUrl-long {
-  display : block;
-  color:#006699;
-}
-
-.gsc-webResult div.gs-visibleUrl-short,
-table.gsc-branding,
-.gsc-clear-button {
-  display : none;
-}
-
-.gsc-cursor-box .gsc-cursor div.gsc-cursor-page,
-.gsc-cursor-box .gsc-trailing-more-results a.gsc-trailing-more-results,
-#leftSearchControl a,
-#leftSearchControl a b {
-  color:#006699;
-}
-
-.gsc-resultsHeader {
-  display: none;
-}
-
-/* Disable built in search forms */
-.gsc-control form.gsc-search-box {
-  display : none;
-}
-table.gsc-search-box {
-  margin:6px 0 0 0;
-  border-collapse:collapse;
-}
-
-td.gsc-input {
-  padding:0 2px;
-  width:100%;
-  vertical-align:middle;
-}
-
-input.gsc-input {
-  border:1px solid #BCCDF0;
-  width:99%;
-  padding-left:2px;
-  font-size:.95em;
-}
-
-td.gsc-search-button {
-  text-align: right;
-  padding:0;
-  vertical-align:top;
-}
-
-#search-button {
-  margin:0 0 0 2px;
-  font-size:11px;
-}
-
-/* search result tabs */
-
-#doc-content .gsc-control {
-  position:relative;
-}
-
-#doc-content .gsc-tabsArea {
-  position:relative;
-  white-space:nowrap;
-}
-
-#doc-content .gsc-tabHeader {
-  padding: 3px 6px;
-  position:relative;
-}
-
-#doc-content .gsc-tabHeader.gsc-tabhActive {
-  border-top: 2px solid #94B922;
-}
-
-#doc-content h2#searchTitle {
-  padding:0;
-}
-
-#doc-content .gsc-resultsbox-visible {
-  padding:1em 0 0 6px;
-}
-
-/* CAROUSEL */
-
-#homeMiddle {
-  padding: 0px 0px 0px 0px;
-  float: left;
-  width: 584px;
-  height: 627px;
-  position:relative;
-}
-
-#topAnnouncement {
-  background:url(images/home/bg_home_announcement.png) no-repeat 0 0;
-}
-  
-#homeTitle {
-  padding:15px 15px 0;
-  height:30px;
-}
-
-#homeTitle h2 {
-  padding:0;
-}
-
-#announcement-block {
-  padding:0 15px 0;
-  overflow:hidden;
-  background: url(images/hr_gray_side.jpg) no-repeat 15px 0;
-  zoom:1;
-}
-
-#announcement-block>* {
-  padding:15px 0 0;
-}
-
-#announcement-block img {
-  float:left;
-  margin:0 30px 0 0;
-}
-
-#announcement {
-  float:left;
-  margin:0;
-}
-
-#carousel {
-  background:url(images/home/bg_home_carousel.png) no-repeat 0 0;
-  position:relative;
-  height:400px;
-}
-
-#carouselMain {
-  background: url(images/home/bg_home_carousel_board.png) 0 0 no-repeat;
-  height:auto;
-  padding: 25px 21px 0;
-  overflow:hidden;
-  position:relative;
-  zoom:1; /*IE6*/
-}
-
-#carouselMain img {
-  margin:0;
-}
-
-#carouselMain .bulletinDesc h3 {
-  margin:0;
-  padding:0;
-}
-
-#carouselMain .bulletinDesc p {
-  margin:0;
-  padding:0.7em 0 0;
-}
-
-#carouselWheel {
-  background: url(images/home/bg_home_carousel_wheel.png) 0 0 no-repeat;
-  padding-top:40px;
-  height:150px;
-}
-
-.clearer { clear:both; }
-
-a#arrow-left, a#arrow-right {
-  float:left;
-  width:42px;
-  height:42px;
-  background-image:url(images/home/carousel_buttons_sprite.png);
-  background-repeat:no-repeat;
-}
-a#arrow-left {
-  margin:35px 3px 0 10px;
-}
-a#arrow-right {
-  margin:35px 10px 0 0;
-}
-a.arrow-left-off,
-a#arrow-left.arrow-left-off:hover {
-  background-position:0 0;
-}
-a.arrow-right-off,
-a#arrow-right.arrow-right-off:hover {
-  background-position:-42px 0;
-}
-a#arrow-left:hover {
-  background-position:0 -42px;
-}
-a#arrow-right:hover {
-  background-position:-42px -42px;
-}
-a.arrow-left-on {
-  background-position:0 0;
-}
-a.arrow-right-on {
-  background-position:-42px 0;
-}
-a.arrow-right-off,
-a.arrow-left-off {
-  cursor:default;
-}
-
-.app-list-container {
-  margin:0 20px;
-  position:relative;
-  width:100%;
-}
-
-div#list-clip {
-  height:110px;
-  width:438px;
-  overflow:hidden;
-  position:relative;
-  float:left;
-}
-
-div#app-list {
-  left:0;
-  z-index:1;
-  position:absolute;
-  margin:11px 0 0;
-  _margin-top:13px;
-  width:1000%;
-}
-
-#app-list a {
-  display:block;
-  float:left;
-  height:90px;
-  width:90px;
-  margin:0 24px 0;
-  padding:3px;
-  background:#99cccc;
-  -webkit-border-radius:7px;
-  -moz-border-radius:7px;
-  border-radius:7px;
-  text-decoration:none;
-  text-align:center;
-  font-size:11px;
-  line-height:11px;
-}
-
-#app-list a span {
-  position:relative;
-  top:-4px;
-}
-
-#app-list img {
-  width:90px;
-  height:70px;
-  margin:0;
-}
-
-#app-list a.selected,
-#app-list a:active.selected,
-#app-list a:hover.selected {
-  background:#A4C639;
-  color:#fff;
-  cursor:default;
-  text-decoration:none;
-}
-
-#app-list a:hover,
-#app-list a:active {
-  background:#ff9900;
-}
-
-#app-list a:hover span,
-#app-list a:active span {
-  text-decoration:underline;
-}
-
-#droid-name {
-  padding-top:.5em;
-  color:#666;
-  padding-bottom:.25em;
-}
-
-/*IE6*/
-* html #app-list a { zoom: 1; margin:0 24px 0 15px;}
-
-* html #list-clip {
-  width:430px !important;
-}
-
-/*carousel bulletin layouts*/
-/*460px width*/
-/*185px height*/
-.img-left {
-  float:left;
-  width:230px;
-  overflow:hidden;
-  padding:8px 0 8px 8px;
-}
-.desc-right {
-  float:left;
-  width:270px;
-  padding:10px;
-}
-.img-right {
-  float:right;
-  width:220px;
-  overflow:hidden;
-  padding:8px 8px 8px 0;
-}
-.desc-left {
-  float:right;
-  width:280px;
-  padding:10px;
-  text-align:right;
-}
-.img-top {
-  padding:20px 20px 0;
-}
-.desc-bottom {
-  padding:10px;
-}
-
-
-/* VIDEO PAGE */
-
-#mainBodyLeft.videoPlayer {
-  width:570px;
-}
-
-#mainBodyRight.videoPlayer {
-  width:330px;
-}
-
-/* player */
-
-#videoPlayerBox {
-  background-color: #DAF3FC;
-  border-radius:7px;
-  -moz-border-radius:7px;
-  -webkit-border-radius:7px;
-  width:530px;
-  padding:20px;
-  border:1px solid #d3ecf5;
-  box-shadow:2px 3px 1px #eee;
-  -moz-box-shadow:2px 3px 1px #eee;
-  -webkit-box-shadow:2px 3px 1px #eee;
-}
-
-#videoBorder {
-  background-color: #FFF;
-  min-height:399px;
-  height:auto !important;
-  border:1px solid #ccdada;
-  border-radius:7px 7px 0 0;
-  -moz-border-radius:7px 7px 0 0;
-  -webkit-border-top-left-radius:7px;
-  -webkit-border-top-right-radius:7px;
-}
-
-#videoPlayerTitle {
-  width:500px;
-  padding:15px 15px 0;
-}
-
-#videoPlayerTitle h2 {
-  font-weight:bold;
-  font-size:1.2em;
-  color:#336666;
-  margin:0;
-  padding:0;
-}
-
-#objectWrapper {
-  padding:15px 15px;
-  height:334px;
-  width:500px;
-}
-
-/* playlist tabs */
-
-ul#videoTabs {
-  list-style-type:none;
-  padding:0;
-  clear:both;
-  margin:0;
-  padding: 20px 0 0 15px;
-  zoom:1; /* IE7/8, otherwise top-padding is double */
-}
-
-ul#videoTabs li {
-  display:inline;
-  padding:0;
-  margin:0 3px 0 0;
-  line-height:2em;
-}
-
-ul#videoTabs li a {
-  border-radius:7px 7px 0 0;
-  -moz-border-radius:7px 7px 0 0;
-  -webkit-border-top-left-radius:7px;
-  -webkit-border-top-right-radius:7px;
-  background:#95c0d0;
-  color:#fff;
-  text-decoration:none;
-  padding:.45em 1.5em;
-  font-weight:bold;
-}
-
-ul#videoTabs li.selected a {
-  font-weight:bold;
-  text-decoration:none;
-  color:#555;
-  background:#daf3fc;
-  border-bottom:1px solid #daf3fc;
-}
-
-ul#videoTabs li:hover a {
-  background:#85acba;
-}
-
-ul#videoTabs li.selected:hover a {
-  background:#daf3fc;
-}
-
-/* playlists */
-
-#videos {
-  background:#daf3fc;
-  margin-bottom:1.5em;
-  padding:15px;
-  border-radius:5px;
-  -moz-border-radius:5px;
-  -webkit-border-radius:5px;
-  box-shadow:2px 3px 1px #eee;
-  -moz-box-shadow:2px 3px 1px #eee;
-  -webkit-box-shadow:2px 3px 1px #eee;
-}
-
-#videos div {
-  display:none;
-}
-
-#videos div.selected {
-  display:block;
-}
-
-ul.videoPreviews {
-  list-style:none;
-  padding:0;
-  margin:0;
-  zoom:1; /* IE, otherwise, layout doesn't update when showing 'more' */
-}
-
-ul.videoPreviews li {
-  margin:0 0 5px;
-  padding:0;
-  overflow:hidden;
-  position:relative;
-}
-
-#mainBodyFixed ul.videoPreviews h3 {
-  font-size: 12px;
-  margin:0 0 1em 130px;
-  padding:0;
-  font-weight:bold;
-  color:inherit;
-}
-
-ul.videoPreviews a {
-  margin:1px;
-  padding:10px;
-  text-decoration:none;
-  height:90px;
-  display:block;
-  border-radius:5px;
-  -moz-border-radius:5px;
-  -webkit-border-radius:5px;
-  background-color:transparent;
-}
-
-ul.videoPreviews a:hover {
-  background-color:#FFF;
-  border:none; /* IE8, otherwise, bg doesn't work */
-}
-
-ul.videoPreviews a.selected {
-  background-color: #FF9900;
-}
-
-ul.videoPreviews img {
-  float:left;
-  clear:left;
-  margin:0;
-}
-
-ul.videoPreviews h3 {
-  font-size:12px;
-  font-weight:bold;
-  text-decoration:none;
-  margin:0 0 1em 130px;
-  padding:0;
-}
-
-ul.videoPreviews p {
-  font-size: 12px;
-  text-decoration:none;
-  margin:0 0 1.2em 130px;
-}
-
-ul.videoPreviews p.full {
-  display:none;
-}
-
-ul.videoPreviews span.more {
-  padding:0 0 0 12px;
-  background:url(images/arrow_bluelink_down.png) 0 2px no-repeat;
-}
-
-ul.videoPreviews span.less {
-  padding:0 0 0 12px;
-  background:url(images/arrow_bluelink_up.png) 0 2px no-repeat;
-  display:none;
-}
-
-ul.videoPreviews p.toggle {
-  position:absolute;
-  margin:0;
-  margin-top:-23px; /* instead of bottom:23px, because IE won't do it correctly */
-  left:140px;
-}
-
-ul.videoPreviews p.toggle a {
-  height:auto;
-  margin:0;
-  padding:0;
-  zoom:1; /* IE6, otherwise the margin considers the img on redraws */
-}
-
-ul.videoPreviews p.toggle a:hover {
-  text-decoration:underline;
-  background:transparent; /* IE6, otherwise it inherits white */
-}
-
-/* featured videos */
-
-#mainBodyRight h2 {
-  padding:0 0 5px;
-}
-
-#mainBodyRight ul.videoPreviews {
-  margin:10px 0 0;
-}
-
-#mainBodyRight ul.videoPreviews li {
-  font-size:11px;
-  line-height:13px;
-  margin:0 0 5px;
-  padding:0;
-}
-
-#mainBodyRight ul.videoPreviews h3 {
-  padding:0;
-  margin:0;
-}
-
-#mainBodyRight ul.videoPreviews a {
-  text-decoration:none;
-  height:108px;
-  border:1px solid #FFF;
-}
-
-#mainBodyRight ul.videoPreviews a:hover {
-  border:1px solid #CCDADA;
-}
-
-#mainBodyRight ul.videoPreviews a.selected {
-  border:1px solid #FFF;
-}
-
-#mainBodyRight ul.videoPreviews p {
-  line-height:1.2em;
-  padding:0;
-  margin:4px 0 0 130px;
-}
-
-#mainBodyRight ul.videoPreviews img {
-  margin-top:5px;
-}
-
-/* Pretty printing styles. Used with prettify.js. */
-
-.str { color: #080; }
-.kwd { color: #008; }
-.com { color: #800; }
-.typ { color: #606; }
-.lit { color: #066; }
-.pun { color: #660; }
-.pln { color: #000; }
-dl.tag-list dt code,
-.tag { color: #008; }
-dl.atn-list dt code,
-.atn { color: #828; }
-.atv { color: #080; }
-.dec { color: #606; }
-
-@media print {
-  .str { color: #060; }
-  .kwd { color: #006; font-weight: bold; }
-  .com { color: #600; font-style: italic; }
-  .typ { color: #404; font-weight: bold; }
-  .lit { color: #044; }
-  .pun { color: #440; }
-  .pln { color: #000; }
-  .tag { color: #006; font-weight: bold; }
-  .atn { color: #404; }
-  .atv { color: #060; }
-}
diff --git a/latest-javadoc/assets/android-developer-docs-devguide.css b/latest-javadoc/assets/android-developer-docs-devguide.css
deleted file mode 100755
index d8bd3b3..0000000
--- a/latest-javadoc/assets/android-developer-docs-devguide.css
+++ /dev/null
@@ -1,19 +0,0 @@
-
-@import url("android-developer-docs.css");
-
-/* Page title */
-
-#jd-header h1 {
-  padding: 8px 0 0 0;
-}
-
-/* Page content container */
-
-#jd-header table {
-margin: 0 0 1em 1em;
-}
-
-#jd-content table table,
-#jd-content table img {
-  margin:1em 0;
-}
\ No newline at end of file
diff --git a/latest-javadoc/assets/android-developer-docs.css b/latest-javadoc/assets/android-developer-docs.css
deleted file mode 100755
index 9cc06fe..0000000
--- a/latest-javadoc/assets/android-developer-docs.css
+++ /dev/null
@@ -1,1297 +0,0 @@
-/* file: android-developer-docs.css
-   author: smain
-   date: september 2008
-   info: developer doc styles (developer.android.com)
-*/
-
-@import url("android-developer-core.css");
-
-#title {
-  border-bottom: 4px solid #ccc;
-  display:none;
-}
-
-#title h1 {
-  color:#336666;
-  margin:0;
-  padding: 5px 10px;
-  font-size: 1em;
-  line-height: 15px;
-}
-
-#title h1 .small{
-  color:#000;
-  margin:0;
-  font-size: 13px;
-  padding:0 0 0 15px;
-}
-
-/* SIDE NAVIGATION */
-
-#side-nav {
-  padding:0 6px 0 0;
-  background-color: #fff;
-  font-size:12px;
-}
-
-#side-nav.not-resizable {
-  background:url('images/sidenav-rule.png') no-repeat 243px 0;
-}
-
-#resize-packages-nav {
-/* keeps the resize handle below the h-scroll handle */
-  height:270px;
-  overflow:hidden;
-  max-height:100%;
-}
-
-#packages-nav {
-  height:270px;
-  max-height:inherit;
-  position:relative;
-  overflow:auto;
-}
-
-#classes-nav,
-#devdoc-nav {
-  overflow:auto;
-  position:relative;
-}
-
-#side-nav ul {
-  list-style: none;
-  margin: 0;
-  padding:5px 0;
-}
-
-#side-nav ul ul {
-  margin: .35em 0 0 0;
-  padding: 0;
-}
-
-#side-nav li {
-  padding:0;
-  line-height:16px;
-  white-space:nowrap;
-  zoom:1;
-}
-
-#side-nav li h2 {
-  font-size:12px;
-  font-weight: bold;
-  margin:.5em 0 0 0;
-  padding: 3px 0 1px 9px;
-}
-
-#side-nav li a {
-  text-decoration:none;
-  padding: 0 0 0 18px;
-  zoom:1;
-}
-
-#side-nav li a span+span {
-  display:none;
-}
-
-#side-nav li a:hover {
-  text-decoration:underline;
-}
-
-#side-nav li a+a {
-  padding: 0;
-}
-/*second level (nested) list*/
-#side-nav li li li a {
-  padding: 0 0 0 28px;
-}
-/*third level (nested) list*/
-#side-nav li li li li a {
-  padding: 0 0 0 38px;
-}
-
-#side-nav .selected {
-  background-color: #435a6e;
-  color: #fff;
-  font-weight:bold;
-}
-
-#side-nav .selected a {
-  color: #fff;
-  text-decoration:none;
-}
-
-#side-nav strong {
-  display:block;
-}
-
-#side-nav .toggle-list .toggle-img {
-  margin:0;
-  padding:0;
-  position:absolute;
-  top:0;
-  left:0;
-  height:16px;
-  width:15px;
-  outline-style:none;
-}
-/* second-level toggle */
-#side-nav .toggle-list .toggle-list .toggle-img {
-  left:10px;
-}
-
-#side-nav .closed .toggle-img,
-#side-nav .open .closed .toggle-img {
-  background:url('images/triangle-closed-small.png') 7px 4px no-repeat;
-}
-#side-nav .open .toggle-img {
-  background:url('images/triangle-opened-small.png') 7px 4px no-repeat;
-}
-
-#side-nav .toggle-list {
-  position:relative;
-}
-
-#side-nav .toggle-list ul {
-  margin:0;
-  display:none;
-}
-
-#side-nav .toggle-list div {
-  display:block;
-}
-
-#index-links .selected {
-  background-color: #fff;
-  color: #000;
-  font-weight:normal;
-  text-decoration:none;
-}
-
-#index-links {
-  padding:7px 0 4px 10px;
-}
-
-/* nav tree */
-
-#nav-tree ul {
-  padding:5px 0 1.5em;
-}
-
-#side-nav #nav-tree ul li a,
-#side-nav #nav-tree ul li span.no-children {
-  padding: 0 0 0 0;
-  margin: 0;
-}
-
-#nav-tree .plus {
-  margin: 0 3px 0 0;
-}
-
-#nav-tree ul ul {
-  list-style: none;
-  margin: 0;
-  padding: 0 0 0 0;
-}
-
-#nav-tree ul li {
-  margin: 0;
-  padding: 0 0 0 0;
-  white-space: nowrap;
-}
-
-#nav-tree .children_ul {
-  margin:0;
-}
-
-#nav-tree a.nolink {
-  color: black;
-  text-decoration: none;
-}
-
-#nav-tree span.label {
-  width: 100%;
-}
-
-#nav-tree {
-  overflow-x: auto;
-  overflow-y: scroll;
-}
-
-#nav-swap {
-  font-size:10px;
-  line-height:10px;
-  margin-left:1em;
-  text-decoration:none;
-  display:block;
-  position:absolute;
-  bottom:2px;
-  left:0px;
-}
-
-#tree-link {
-
-}
-
-/* DOCUMENT BODY */
-
-#doc-content {
-  overflow:auto;
-}
-
-#jd-header {
-  background-color: #E2E2E2;
-  padding: 7px 15px;
-}
-
-#jd-header h1 {
-  margin: 0 0 10px;
-  font-size:1.7em;
-}
-
-#jd-header .crumb {
-  font-size:.9em;
-  line-height:1em;
-  color:#777;
-}
-
-#jd-header .crumb a,
-#jd-header .crumb a:visited {
-  text-decoration:none;
-  color:#777;
-}
-
-#jd-header .crumb a:hover {
-  text-decoration:underline;
-}
-
-#jd-header table {
-  margin:0;
-  padding:0;
-}
-
-#jd-header td {
-  border:none;
-  padding:0;
-  vertical-align:top;
-}
-
-#jd-header.guide-header {
-  background-color:#fff;
-  color:#435a6e;
-  height:50px;
-}
-
-#jd-descr {
-  position:relative;
-}
-
-/* summary tables for reference pages */
-.jd-sumtable {
-  margin: .5em 1em 1em 1em;
-  width:95%; /* consistent table widths; within IE's quirks */
-  font-size:.9em;
-}
-
-.jd-sumtable a {
-  text-decoration:none;
-}
-
-.jd-sumtable a:hover {
-  text-decoration:underline;
-}
-
-/* the link inside a sumtable for "Show All/Hide All" */
-.toggle-all {
-  display:block;
-  float:right;
-  font-weight:normal;
-  font-size:0.9em;
-}
-
-/* adjustments for in/direct subclasses tables */
-.jd-sumtable-subclasses {
-  margin: 1em 0 0 0;
-  max-width:968px;
-}
-
-/* extra space between end of method name and open-paren */
-.sympad {
-  margin-right: 2px;
-}
-
-/* right alignment for the return type in sumtable */
-.jd-sumtable .jd-typecol {
-  text-align:right;
-}
-
-/* adjustments for the expando table-in-table */
-.jd-sumtable-expando {
-  margin:.5em 0;
-  padding:0;
-}
-
-/* a div that holds a short description */
-.jd-descrdiv {
-  padding:3px 1em 0 1em;
-  margin:0;
-  border:0;
-}
-
-/* page-top-right container for reference pages (holds
-links to summary tables) */
-#api-info-block {
-  font-size:.8em;
-  padding:6px 10px;
-  font-weight:normal;
-  float:right;
-  text-align:right;
-  color:#999;
-  max-width:70%;
-}
-
-#api-level-toggle {
-  padding:0 0px;
-  font-size:11px;
-  margin:3px 10px 0 0;
-}
-
-#api-level-toggle label.disabled {
-  color:#999;
-}
-
-div.api-level {
-  font-size:.8em;
-  font-weight:normal;
-  color:#999;
-  float:right;
-  padding:0 7px 0;
-  margin-top:-25px;
-}
-
-#api-info-block div.api-level {
-  font-size:1.3em;
-  font-weight:bold;
-  float:none;
-  color:#444;
-  padding:0;
-  margin:0;
-}
-
-/* Force link colors for IE6 */
-div.api-level a {
-  color:#999;
-}
-#api-info-block div.api-level a:link {
-  color:#444;
-}
-#api-level-toggle a {
-  color:#999;
-}
-
-div#naMessage {
-  display:none;
-  width:555px;
-  height:0;
-  margin:0 auto;
-}
-
-div#naMessage div {
-  width:450px;
-  position:fixed;
-  margin:50px 0;
-  padding:4em 4em 3em;
-  background:#FFF;
-  background:rgba(255,255,255,0.7);
-  border:1px solid #dddd00;
-}
-/* IE6 can't position fixed */
-* html div#naMessage div { position:absolute; }
-
-div#naMessage strong {
-  font-size:1.1em;
-}
-
-.absent,
-.absent a:link,
-.absent a:visited,
-.absent a:hover,
-.absent * {
-  color:#bbb !important;
-  cursor:default !important;
-  text-decoration:none !important;
-}
-
-#api-level-toggle a,
-.api-level a {
-  color:inherit;
-  text-decoration:none;
-}
-
-#api-level-toggle a:hover,
-.api-level a:hover {
-  color:inherit;
-  text-decoration:underline !important;
-  cursor:pointer !important;
-}
-
-#side-nav li.absent.selected,
-#side-nav li.absent.selected *,
-#side-nav div.label.absent.selected,
-#side-nav div.label.absent.selected * {
-  background-color:#eaeaea !important;
-}
-/* IE6 quirk (won't chain classes, so just keep background blue) */
-* html #side-nav li.selected,
-* html #side-nav li.selected *,
-* html #side-nav div.label.selected,
-* html #side-nav div.label.selected * {
-  background-color: #435a6e !important;
-}
-
-
-.absent h4.jd-details-title,
-.absent h4.jd-details-title * {
-  background-color:#f6f6f6 !important;
-}
-
-.absent img {
-  opacity: .3;
-  filter: alpha(opacity=30);
-  -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
-}
-
-
-/* applies to a div containing links to summary tables */
-.sum-details-links {
-  padding:0;
-  font-weight:normal;
-}
-
-.sum-details-links a {
-  text-decoration:none;
-}
-
-.sum-details-links a:hover {
-  text-decoration:underline;
-}
-
-
-/* inheritance table */
-.jd-inheritance-table {
-  border-spacing:0;
-  margin:0;
-  padding:0;
-  font-size:.9em;
-}
-.jd-inheritance-table td {
-  border: none;
-  margin: 0;
-  padding: 0;
-}
-.jd-inheritance-table .jd-inheritance-space {
-  font-weight:bold;
-  width:1em;
-}
-.jd-inheritance-table .jd-inheritance-interface-cell {
-  padding-left: 17px;
-}
-
-#jd-content {
-  padding: 18px 15px;
-}
-
-hr {
-  background-color:#ccc;
-  border-color:#fff;
-  margin:2em 0 1em;
-}
-
-/* DOC CLASSES */
-
-#jd-content h1 {
-/*sdk page*/
-  font-size:1.6em;
-  color:#336666;
-  margin:0 0 .5em;
-}
-
-#jd-content h2 {
-  font-size:1.45em;
-  color:#111;
-  border-top:2px solid #ccc;
-  padding: .5em 0 0;
-  margin: 2em 0 1em 0;
-}
-
-#jd-content h3 {
-  font-size:1.2em;
-  color:#222;
-  padding: .75em 0 .65em 0;
-  margin:0;
-}
-
-#jd-content h4 {
-  font-size:1.1em;
-  margin-bottom:.5em;
-  color:#222;
-}
-
-#jd-content .small-header {
-  font-size:1em;
-  color:#000;
-  font-weight:bold;
-  border:none;
-  padding:0;
-  margin:1em 0 .5em;
-  position:inherit;
-}
-
-#jd-content table {
-  margin: 0 0 1em 1em;
-}
-
-#jd-content img {
-  margin: 0 0 1em 1em;
-}
-
-#jd-content li img,
-#jd-content dd img {
-  margin:.5em 0 0 1em;
-}
-
-.nolist {
-  list-style:none;
-  padding:0;
-  margin:0 0 1em 1em;
-}
-
-.nolist li {
-  padding:0 0 2px;
-  margin:0;
-}
-
-h4 .normal {
-  font-size:.9em;
-  font-weight:normal;
-}
-
-.caps {
-  font-variant:small-caps;
-  font-size:1.2em;
-}
-
-dl.tag-list dl.atn-list {
-  padding:0 0 0 2em;
-}
-
-.jd-details {
-/*  border:1px solid #669999;
-  padding:4px; */
-  margin:0 0 1em;
-}
-
-/* API reference: a container for the
-.tagdata blocks that make up the detailed
-description */
-.jd-details-descr {
-  padding:0;
-  margin:.5em .25em;
-}
-
-/* API reference: a block containing
-a detailed description, a params table,
-seealso list, etc */
-.jd-tagdata {
-  margin:.5em 1em;
-}
-
-.jd-tagdata p {
-  margin:0 0 1em 1em;
-}
-
-/* API reference: adjustments to
-the detailed description block */
-.jd-tagdescr {
-  margin:.25em 0 .75em 0;
-  line-height:1em;
-}
-
-.jd-tagdescr p {
-  margin:.5em 0;
-  padding:0;
-
-}
-
-.jd-tagdescr ol,
-.jd-tagdescr ul {
-  margin:0 2.5em;
-  padding:0;
-}
-
-.jd-tagdescr table,
-.jd-tagdescr img {
-  margin:.25em 1em;
-}
-
-.jd-tagdescr li {
-margin:0 0 .25em 0;
-padding:0;
-}
-
-/* API reference: heading marking
-the details section for constants,
-attrs, methods, etc. */
-h4.jd-details-title {
-  font-size:1.15em;
-  background-color: #E2E2E2;
-  margin:1.5em 0 .6em;
-  padding:3px 95px 3px 3px; /* room for api-level */
-}
-
-h4.jd-tagtitle {
-  margin:0;
-}
-
-/* API reference: heading for "Parameters", "See Also", etc.,
-in details sections */
-h5.jd-tagtitle {
-  margin:0 0 .25em 0;
-  font-size:1em;
-}
-
-.jd-tagtable {
-  margin:0;
-}
-
-.jd-tagtable td,
-.jd-tagtable th {
-  border:none;
-  background-color:#fff;
-  vertical-align:top;
-  font-weight:normal;
-  padding:2px 10px;
-}
-
-.jd-tagtable th {
-  font-style:italic;
-}
-
-#jd-content table h2 {
-  background-color: #d6d6d6;
-  font-size: 1.1em;
-  margin:0 0 10px;
-  padding:5px;
-  left:0;
-  width:auto;
-}
-
-div.special {
-  padding: .5em 1em 1em 1em;
-  margin: 0 0 1em;
-  background-color: #DAF3FC;
-  border:1px solid #d3ecf5;
-  border-radius:5px;
-  -moz-border-radius:5px;
-  -webkit-border-radius:5px;
-}
-
-.toggle-content-toggleme {
-  display:none;
-}
-
-.toggle-content-button {
-  font-size:.9em;
-  line-height:.9em;
-  text-decoration:none;
-  position:relative;
-  top:5px;
-}
-
-.toggle-content-button:hover {
-  text-decoration:underline;
-}
-
-div.special p {
-  margin: .5em 0 0 0;
-}
-
-div.special ol {
-  margin: 0;
-}
-
-div.special ol li {
-  margin: 0;
-  padding: 0;
-}
-
-#jd-content div.special h2,
-#jd-content div.special h3 {
-  color:#669999;
-  font-size:1.2em;
-  border:none;
-  margin:0 0 .5em;
-  padding:0;
-}
-
-p.note, p.caution, p.warning {
-  margin: 1em;
-  padding: 0 0 0 .5em;
-  border-left: 4px solid;
-}
-
-p.special-note {
-  background-color:#EBF3DB;
-  padding:10px 20px;
-  margin:0 0 1em;
-}
-
-p.note {
- border-color: #99aacc;
-}
-
-p.warning {
-  border-color: #aa0033;
-}
-
-p.caution {
-  border-color: #ffcf00;
-}
-
-p.warning b, p.warning strong {
-  font-weight: bold;
-}
-
-li p.note, li p.warning {
-  margin: .5em 0 0 0;
-  padding: .2em .5em .2em .9em;
-}
-
-dl.xml dt {
-  font-variant:small-caps;
-  font-size:1.2em;
-}
-
-dl.xml dl {
-  padding:0;
-}
-
-dl.xml dl dt {
-  font-variant:normal;
-  font-size:1em;
-}
-
-.listhead li {
-  font-weight: bold;
-}
-
-.listhead li *, /*ie*/.listhead li li {
-  font-weight: normal;
-}
-
-ol.no-style,
-ul.no-style {
-  list-style:none;
-  padding-left:1em;
-}
-
-.new {
-  font-size: .78em;
-  font-weight: bold;
-  color: #ff3d3d;
-  text-decoration: none;
-  vertical-align:top;
-  line-height:.9em;
-}
-
-pre.classic {
-  background-color:transparent;
-  border:none;
-  padding:0;
-}
-
-p.img-caption {
-  margin: -0.5em 0 1em 1em; /* matches default img left-margin */
-}
-
-div.figure {
-  float:right;
-  clear:right;
-  margin:1em 0 0 3em;
-  padding:0;
-  background-color:#fff;
-  /* width must be defined w/ an inline style matching the image width */
-}
-
-#jd-content
-div.figure img {
-  margin: 0 0 1em;
-}
-
-div.figure p.img-caption {
-  margin: -0.5em 0 1em 0;
-}
-
-p.table-caption {
-  margin: 0 0 0.5em 1em; /* matches default table left-margin */
-}
-
-/* BEGIN quickview sidebar element styles */
-
-#qv-wrapper {
-  float: right;
-  width:310px; /* +35px padding */
-  background-color:#fff;
-  margin:-48px 0 2px 0;
-  padding:0 0 20px 35px;
-}
-
-#qv {
-  background-color:#fff;
-  border:4px solid #dee8f1;
-  margin:0;
-  padding:0 5px 5px;
-  width:292px; /* +10px padding; +8px border */
-  font-size:.9em;
-}
-
-#qv ol {
-  list-style:none;
-  padding: 0;
-}
-
-#qv ol ol{
-  list-style:none;
-  padding: 0 0 0 12px;
-  margin:0;
-}
-
-#qv ul {
-  padding: 0 10px 0 2em;
-}
-
-#qv li {
-  padding: 0 10px 3px;
-  line-height: 1.2em;
-}
-
-#qv li li {
-  padding: 3px 10px 0;
-}
-
-#qv ul li {
-  padding: 0 10px 0 0;
-}
-
-#qv li.selected a {
-  color:#555;
-  text-decoration:none;
-}
-
-#qv a {
-  color:#cc6600;
-}
-
-#qv p {
-  margin:8px 0 0;
-  padding:0 10px;
-}
-
-#qv-extra #rule {
-  padding: 0 10px;
-  margin: 0;
-}
-
-#qv-sub-rule {
-  padding: 6px 20px;
-  margin: 0;
-}
-
-#qv-sub-rule p {
-  margin: 0;
-}
-
-#jd-content #qv h2 {
-  font-size:1.05em;
-  font-weight:bold;
-  margin:12px 0 .25em 0;
-  padding:0 10px;
-  background-color:transparent;
-  color:#7BB026;
-  border:none;
-  left:0;
-  z-index:1;
-}
-
-/* END quickview sidebar element styles */
-
-/* Begin sidebox sidebar element styles */
-
-.sidebox-wrapper {
-  float:right;
-  clear:right;
-  width:310px; /* +35px padding */
-  background-color:#fff;
-  margin:0;
-  padding:0 0 20px 35px;
-}
-
-.sidebox {
-  border-left:1px solid #dee8f1;
-  background-color:#ffffee;
-  margin:0;
-  padding:8px 12px;
-  font-size:0.9em;
-  width:285px; /* +24px padding; +1px border */
-}
-
-.sidebox p {
-  margin-bottom: .25em;
-}
-
-.sidebox ul {
-  padding: 0 0 0 1.5em;
-}
-
-.sidebox li ul {
-  margin-top:0;
-  margin-bottom:.1em;
-}
-
-.sidebox li {
-padding:0 0 0 0em;
-}
-
-#jd-content .sidebox h2,
-#jd-content .sidebox h3,
-#jd-content .sidebox h4,
-#jd-content .sidebox h5 {
-  border:none;
-  font-size:1em;
-  margin:0;
-  padding:0 0 8px;
-  left:0;
-  z-index:0;
-}
-
-.sidebox hr {
-  background-color:#ccc;
-  border:none;
-}
-
-/* End sidebox sidebar element styles */
-
-/* BEGIN image and caption styles (originally for UI Guidelines docs) */
-
-table.image-caption {
-  padding:0;
-  margin:.5em 0;
-  border:0;
-}
-
-td.image-caption-i {
-  font-size:92%;
-  padding:0 5px;
-  margin:0;
-  border:0;
-}
-
-td.image-caption-i img {
-  padding:0 1em;
-  margin:0;
-}
-
-.image-list {
-  width:24px;
-  text-align:center;
-}
-
-td.image-caption-c {
-  font-size:92%;
-  padding:1em 2px 2px 2px;
-  margin:0;
-  border:0;
-  width:350px;
-}
-
-.grad-rule-top {
-background-image:url(images/grad-rule-qv.png);
-background-repeat:no-repeat;
-padding-top:1em;
-margin-top:0;
-}
-
-.image-caption-nested {
-  margin-top:0;
-  padding:0 0 0 1em;
-}
-
-.image-caption-nested td {
-  padding:0 4px 2px 0;
-  margin:0;
-  border:0;
-}
-
-/* END image and caption styles */
-
-/* table of contents */
-
-ol.toc {
-  margin: 0 0 1em 0;
-  padding: 0;
-  list-style: none;
-  font-size:95%;
-}
-
-ol.toc li {
-  font-weight: bold;
-  margin: 0 0 .5em 1em;
-  padding: 0;
-}
-
-ol.toc li p {
-  font-weight: normal;
-}
-
-ol.toc li ol {
-  margin: 0;
-  padding: 0;
-}
-  
-ol.toc li li {
-  padding: 0;
-  margin: 0 0 0 1em;
-  font-weight: normal;
-  list-style: none;
-}
-
-table ol.toc {
-  margin-left: 0;
-}
-
-.columns td {
-  padding:0 5px;
-  border:none;
-}
-
-/* link table */
-.jd-linktable {
-  margin: 0 0 1em;
-  border-bottom: 1px solid #888;
-}
-.jd-linktable th,
-.jd-linktable td {
-  padding: 3px 5px;
-  vertical-align: top;
-  text-align: left;
-  border:none;
-}
-.jd-linktable tr {
-  background-color: #fff;
-}
-.jd-linktable td {
-  border-top: 1px solid #888;
-  background-color: inherit;
-}
-.jd-linktable td  p {
-  padding: 0 0 5px;
-}
-.jd-linktable .jd-linkcol {
-}
-.jd-linktable .jd-descrcol {
-}
-.jd-linktable .jd-typecol {
-  text-align:right;
-}
-.jd-linktable .jd-valcol {
-}
-.jd-linktable .jd-commentrow {
-  border-top:none;
-  padding-left:25px;
-}
-.jd-deprecated-warning {
-  margin-top: 0;
-  margin-bottom: 10px;
-}
-
-tr.alt-color {
-  background-color: #f6f6f6;
-}
-
-/* expando trigger */
-#jd-content .jd-expando-trigger-img {
-  margin:0;
-}
-
-/* jd-expando */
-.jd-inheritedlinks {
-  padding:0 0 0 13px
-}
-
-/* SDK PAGE */
-table.download tr {
-  background-color:#d9d9d9;
-}
-
-table.download tr.alt-color {
-  background-color:#ededed;
-}
-
-table.download td,
-table.download th {
-  border:2px solid #fff;
-  padding:10px 5px;
-}
-
-table.download th {
-  background-color:#6d8293;
-  color:#fff;
-}
-
-/* INLAY 180 COPY and 240PX EXTENSION */
-/* modified to 43px so that all browsers eliminate the package panel h-scroll */
-.g-tpl-240 .g-unit,
-.g-unit .g-tpl-240 .g-unit,
-.g-unit .g-unit .g-tpl-240 .g-unit {
-  display: block;
-  margin: 0 0 0 243px;
-  width: auto;
-  float: none;
-}
-.g-unit .g-unit .g-tpl-240 .g-first,
-.g-unit .g-tpl-240 .g-first,
-.g-tpl-240 .g-first {
-  display: block;
-  margin: 0;
-  width: 243px;
-  float: left;
-}
-/* 240px alt */
-.g-tpl-240-alt .g-unit,
-.g-unit .g-tpl-240-alt .g-unit,
-.g-unit .g-unit .g-tpl-240-alt .g-unit {
-  display: block;
-  margin: 0 243px 0 0;
-  width: auto;
-  float: none;
-}
-.g-unit .g-unit .g-tpl-240-alt .g-first,
-.g-unit .g-tpl-240-alt .g-first,
-.g-tpl-240-alt .g-first {
-  display: block;
-  margin: 0;
-  width: 243px;
-  float: right;
-}
-
-/* 180px */
-.g-tpl-180 .g-unit,
-.g-unit .g-tpl-180 .g-unit,
-.g-unit .g-unit .g-tpl-180 .g-unit {
-  display: block;
-  margin: 0 0 0 180px;
-  width: auto;
-  float: none;
-}
-.g-unit .g-unit .g-tpl-180 .g-first,
-.g-unit .g-tpl-180 .g-first,
-.g-tpl-180 .g-first {
-  display: block;
-  margin: 0;
-  width: 180px;
-  float: left;
-}
-/* 180px alt */
-.g-tpl-180-alt .g-unit,
-.g-unit .g-tpl-180-alt .g-unit,
-.g-unit .g-unit .g-tpl-180-alt .g-unit {
-  display: block;
-  margin: 0 180px 0 0;
-  width: auto;
-  float: none;
-}
-.g-unit .g-unit .g-tpl-180-alt .g-first,
-.g-unit .g-tpl-180-alt .g-first,
-.g-tpl-180-alt .g-first {
-  display: block;
-  margin: 0;
-  width: 180px;
-  float: right;
-}
-
-  
-/* JQUERY RESIZABLE STYLES */
-.ui-resizable { position: relative; }
-.ui-resizable-handle { position: absolute; display: none; font-size: 0.1px; z-index:1; }
-.ui-resizable .ui-resizable-handle { display: block; }
-body .ui-resizable-disabled .ui-resizable-handle { display: none; }
-body .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-s { cursor: s-resize; height: 6px; width: 100%; bottom: 0px; left: 0px;
-  background: transparent url("images/resizable-s2.gif") repeat scroll center top; }
-.ui-resizable-e { cursor: e-resize; width: 6px; right: 0px; top: 0px; height: 100%;
-  background: transparent url("images/resizable-e2.gif") repeat scroll right center; }
-
-@media print {
-
-  body {
-    overflow:visible;
-  }
-
-  #header {
-    height:50px;
-  }
-
-  #header-tabs,
-  #headerRight,
-  #side-nav,
-  #api-info-block {
-    display:none;
-  }
-
-  #body-content {
-    position:inherit;
-  }
-  
-  #doc-content {
-    margin-left:0 !important;
-    height:auto !important;
-    width:auto !important;
-    overflow:inherit;
-    display:inline;
-  }
-
-  #jd-header {
-    padding:10px 0;
-  }
-
-  #jd-content {
-    padding:15px 0 0;
-  }
-
-  #footer {
-    float:none;
-    margin:2em 0 0;
-  }
-
-  h4.jd-details-title {
-    border-bottom:1px solid #666;
-  }
-
-  pre {
-    /* these allow lines to break (if there's a white space) */
-    overflow: visible;
-    text-wrap: unrestricted;
-    white-space: -moz-pre-wrap; /* Moz */
-    white-space: -pre-wrap; /* Opera 4-6 */
-    white-space: -o-pre-wrap; /* Opera 7 */
-    white-space: pre-wrap; /* CSS3  */
-    word-wrap: break-word; /* IE 5.5+ */
-  }
-
-  h1, h2, h3, h4, h5, h6 {
-    page-break-after: avoid;
-  }
-
-  table, img {
-    page-break-inside: avoid;
-  }
-}
diff --git a/latest-javadoc/assets/android-developer-docs.js b/latest-javadoc/assets/android-developer-docs.js
deleted file mode 100755
index 6f52141..0000000
--- a/latest-javadoc/assets/android-developer-docs.js
+++ /dev/null
@@ -1,595 +0,0 @@
-var resizePackagesNav;
-var classesNav;
-var devdocNav;
-var sidenav;
-var content;
-var HEADER_HEIGHT = -1;
-var cookie_namespace = 'android_developer';
-var NAV_PREF_TREE = "tree";
-var NAV_PREF_PANELS = "panels";
-var nav_pref;
-var toRoot;
-var toAssets;
-var isMobile = false; // true if mobile, so we can adjust some layout
-var isIE6 = false; // true if IE6
-
-// TODO: use $(document).ready instead
-function addLoadEvent(newfun) {
-  var current = window.onload;
-  if (typeof window.onload != 'function') {
-    window.onload = newfun;
-  } else {
-    window.onload = function() {
-      current();
-      newfun();
-    }
-  }
-}
-
-var agent = navigator['userAgent'].toLowerCase();
-// If a mobile phone, set flag and do mobile setup
-if ((agent.indexOf("mobile") != -1) ||      // android, iphone, ipod
-    (agent.indexOf("blackberry") != -1) ||
-    (agent.indexOf("webos") != -1) ||
-    (agent.indexOf("mini") != -1)) {        // opera mini browsers
-  isMobile = true;
-  addLoadEvent(mobileSetup);
-// If not a mobile browser, set the onresize event for IE6, and others
-} else if (agent.indexOf("msie 6") != -1) {
-  isIE6 = true;
-  addLoadEvent(function() {
-    window.onresize = resizeAll;
-  });
-} else {
-  addLoadEvent(function() {
-    window.onresize = resizeHeight;
-  });
-}
-
-function mobileSetup() {
-  $("body").css({'overflow':'auto'});
-  $("html").css({'overflow':'auto'});
-  $("#body-content").css({'position':'relative', 'top':'0'});
-  $("#doc-content").css({'overflow':'visible', 'border-left':'3px solid #DDD'});
-  $("#side-nav").css({'padding':'0'});
-  $("#nav-tree").css({'overflow-y': 'auto'});
-}
-
-/* loads the lists.js file to the page.
-Loading this in the head was slowing page load time */
-addLoadEvent( function() {
-  var lists = document.createElement("script");
-  lists.setAttribute("type","text/javascript");
-  lists.setAttribute("src", toRoot+"lists.js");
-  document.getElementsByTagName("head")[0].appendChild(lists);
-} );
-
-addLoadEvent( function() {
-  $("pre:not(.no-pretty-print)").addClass("prettyprint");
-  prettyPrint();
-} );
-
-function setToRoot(root, assets) {
-  toRoot = root;
-  toAssets = assets;
-  // note: toRoot also used by carousel.js
-}
-
-function restoreWidth(navWidth) {
-  var windowWidth = $(window).width() + "px";
-  content.css({marginLeft:parseInt(navWidth) + 6 + "px"}); //account for 6px-wide handle-bar
-
-  if (isIE6) {
-    content.css({width:parseInt(windowWidth) - parseInt(navWidth) - 6 + "px"}); // necessary in order for scrollbars to be visible
-  }
-
-  sidenav.css({width:navWidth});
-  resizePackagesNav.css({width:navWidth});
-  classesNav.css({width:navWidth});
-  $("#packages-nav").css({width:navWidth});
-}
-
-function restoreHeight(packageHeight) {
-  var windowHeight = ($(window).height() - HEADER_HEIGHT);
-  var swapperHeight = windowHeight - 13;
-  $("#swapper").css({height:swapperHeight + "px"});
-  sidenav.css({height:windowHeight + "px"});
-  content.css({height:windowHeight + "px"});
-  resizePackagesNav.css({maxHeight:swapperHeight + "px", height:packageHeight});
-  classesNav.css({height:swapperHeight - parseInt(packageHeight) + "px"});
-  $("#packages-nav").css({height:parseInt(packageHeight) - 6 + "px"}); //move 6px to give space for the resize handle
-  devdocNav.css({height:sidenav.css("height")});
-  $("#nav-tree").css({height:swapperHeight + "px"});
-}
-
-function readCookie(cookie) {
-  var myCookie = cookie_namespace+"_"+cookie+"=";
-  if (document.cookie) {
-    var index = document.cookie.indexOf(myCookie);
-    if (index != -1) {
-      var valStart = index + myCookie.length;
-      var valEnd = document.cookie.indexOf(";", valStart);
-      if (valEnd == -1) {
-        valEnd = document.cookie.length;
-      }
-      var val = document.cookie.substring(valStart, valEnd);
-      return val;
-    }
-  }
-  return 0;
-}
-
-function writeCookie(cookie, val, section, expiration) {
-  if (val==undefined) return;
-  section = section == null ? "_" : "_"+section+"_";
-  if (expiration == null) {
-    var date = new Date();
-    date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
-    expiration = date.toGMTString();
-  }
-  document.cookie = cookie_namespace + section + cookie + "=" + val + "; expires=" + expiration+"; path=/";
-}
-
-function getSection() {
-  if (location.href.indexOf("/reference/") != -1) {
-    return "reference";
-  } else if (location.href.indexOf("/guide/") != -1) {
-    return "guide";
-  } else if (location.href.indexOf("/resources/") != -1) {
-    return "resources";
-  }
-  var basePath = getBaseUri(location.pathname);
-  return basePath.substring(1,basePath.indexOf("/",1));
-}
-
-function init() {
-  HEADER_HEIGHT = $("#header").height()+3;
-  $("#side-nav").css({position:"absolute",left:0});
-  content = $("#doc-content");
-  resizePackagesNav = $("#resize-packages-nav");
-  classesNav = $("#classes-nav");
-  sidenav = $("#side-nav");
-  devdocNav = $("#devdoc-nav");
-
-  var cookiePath = getSection() + "_";
-  
-  if (!isMobile) {
-    $("#resize-packages-nav").resizable({handles: "s", resize: function(e, ui) { resizePackagesHeight(); } });
-    $(".side-nav-resizable").resizable({handles: "e", resize: function(e, ui) { resizeWidth(); } });
-    var cookieWidth = readCookie(cookiePath+'width');
-    var cookieHeight = readCookie(cookiePath+'height');
-    if (cookieWidth) {
-      restoreWidth(cookieWidth);
-    } else if ($(".side-nav-resizable").length) {
-      resizeWidth();
-    }
-    if (cookieHeight) {
-      restoreHeight(cookieHeight);
-    } else {
-      resizeHeight();
-    }
-  }
-
-  if (devdocNav.length) { // only dev guide, resources, and sdk
-    tryPopulateResourcesNav();
-    highlightNav(location.href);
-  }
-}
-
-function tryPopulateResourcesNav() {
-  var sampleList = $('#devdoc-nav-sample-list');
-  var articleList = $('#devdoc-nav-article-list');
-  var tutorialList = $('#devdoc-nav-tutorial-list');
-  var topicList = $('#devdoc-nav-topic-list');
-
-  if (!topicList.length || !ANDROID_TAGS || !ANDROID_RESOURCES)
-    return;
-
-  var topics = [];
-  for (var topic in ANDROID_TAGS['topic']) {
-    topics.push({name:topic,title:ANDROID_TAGS['topic'][topic]});
-  }
-  topics.sort(function(x,y){ return (x.title < y.title) ? -1 : 1; });
-  for (var i = 0; i < topics.length; i++) {
-    topicList.append(
-        $('<li>').append(
-          $('<a>')
-            .attr('href', toRoot + "../resources/browser.html?tag=" + topics[i].name)
-            .append($('<span>')
-              .addClass('en')
-              .html(topics[i].title)
-            )
-          )
-        );
-  }
-
-  var _renderResourceList = function(tag, listNode) {
-    var resources = [];
-    var tags;
-    var resource;
-    var i, j;
-    for (i = 0; i < ANDROID_RESOURCES.length; i++) {
-      resource = ANDROID_RESOURCES[i];
-      tags = resource.tags || [];
-      var hasTag = false;
-      for (j = 0; j < tags.length; j++)
-        if (tags[j] == tag) {
-          hasTag = true;
-          break;
-        }
-      if (!hasTag)
-        continue;
-      resources.push(resource);
-    }
-    //resources.sort(function(x,y){ return (x.title.en < y.title.en) ? -1 : 1; });
-    for (i = 0; i < resources.length; i++) {
-      resource = resources[i];
-      var listItemNode = $('<li>').append(
-          $('<a>')
-            .attr('href', toRoot + "../resources/" + resource.path)
-            .append($('<span>')
-              .addClass('en')
-              .html(resource.title.en)
-            )
-          );
-      tags = resource.tags || [];
-      for (j = 0; j < tags.length; j++) {
-        if (tags[j] == 'new') {
-          listItemNode.get(0).innerHTML += '&nbsp;<span class="new">new!</span>';
-          break;
-        }
-      }
-      listNode.append(listItemNode);
-    }
-  };
-
-  _renderResourceList('sample', sampleList);
-  _renderResourceList('article', articleList);
-  _renderResourceList('tutorial', tutorialList);
-}
-
-function highlightNav(fullPageName) {
-  var lastSlashPos = fullPageName.lastIndexOf("/");
-  var firstSlashPos;
-  if (fullPageName.indexOf("/guide/") != -1) {
-      firstSlashPos = fullPageName.indexOf("/guide/");
-    } else if (fullPageName.indexOf("/sdk/") != -1) {
-      firstSlashPos = fullPageName.indexOf("/sdk/");
-    } else {
-      firstSlashPos = fullPageName.indexOf("/resources/");
-    }
-  if (lastSlashPos == (fullPageName.length - 1)) { // if the url ends in slash (add 'index.html')
-    fullPageName = fullPageName + "index.html";
-  }
-  // First check if the exact URL, with query string and all, is in the navigation menu
-  var pathPageName = fullPageName.substr(firstSlashPos);
-  var link = $("#devdoc-nav a[href$='"+ pathPageName+"']");
-  if (link.length == 0) {
-    var htmlPos = fullPageName.lastIndexOf(".html", fullPageName.length);
-    pathPageName = fullPageName.slice(firstSlashPos, htmlPos + 5); // +5 advances past ".html"
-    link = $("#devdoc-nav a[href$='"+ pathPageName+"']");
-    if ((link.length == 0) && ((fullPageName.indexOf("/guide/") != -1) || (fullPageName.indexOf("/resources/") != -1))) {
-      // if there's no match, then let's backstep through the directory until we find an index.html page
-      // that matches our ancestor directories (only for dev guide and resources)
-      lastBackstep = pathPageName.lastIndexOf("/");
-      while (link.length == 0) {
-        backstepDirectory = pathPageName.lastIndexOf("/", lastBackstep);
-        link = $("#devdoc-nav a[href$='"+ pathPageName.slice(0, backstepDirectory + 1)+"index.html']");
-        lastBackstep = pathPageName.lastIndexOf("/", lastBackstep - 1);
-        if (lastBackstep == 0) break;
-      }
-    }
-  }
-
-  // add 'selected' to the <li> or <div> that wraps this <a>
-  link.parent().addClass('selected');
-
-  // if we're in a toggleable root link (<li class=toggle-list><div><a>)
-  if (link.parent().parent().hasClass('toggle-list')) {
-    toggle(link.parent().parent(), false); // open our own list
-    // then also check if we're in a third-level nested list that's toggleable
-    if (link.parent().parent().parent().is(':hidden')) {
-      toggle(link.parent().parent().parent().parent(), false); // open the super parent list
-    }
-  }
-  // if we're in a normal nav link (<li><a>) and the parent <ul> is hidden
-  else if (link.parent().parent().is(':hidden')) {
-    toggle(link.parent().parent().parent(), false); // open the parent list
-    // then also check if the parent list is also nested in a hidden list
-    if (link.parent().parent().parent().parent().is(':hidden')) {
-      toggle(link.parent().parent().parent().parent().parent(), false); // open the super parent list
-    }
-  }
-}
-
-/* Resize the height of the nav panels in the reference,
- * and save the new size to a cookie */
-function resizePackagesHeight() {
-  var windowHeight = ($(window).height() - HEADER_HEIGHT);
-  var swapperHeight = windowHeight - 13; // move 13px for swapper link at the bottom
-  resizePackagesNav.css({maxHeight:swapperHeight + "px"});
-  classesNav.css({height:swapperHeight - parseInt(resizePackagesNav.css("height")) + "px"});
-
-  $("#swapper").css({height:swapperHeight + "px"});
-  $("#packages-nav").css({height:parseInt(resizePackagesNav.css("height")) - 6 + "px"}); //move 6px for handle
-
-  var section = getSection();
-  writeCookie("height", resizePackagesNav.css("height"), section, null);
-}
-
-/* Resize the height of the side-nav and doc-content divs,
- * which creates the frame effect */
-function resizeHeight() {
-  var docContent = $("#doc-content");
-
-  // Get the window height and always resize the doc-content and side-nav divs
-  var windowHeight = ($(window).height() - HEADER_HEIGHT);
-  docContent.css({height:windowHeight + "px"});
-  $("#side-nav").css({height:windowHeight + "px"});
-
-  var href = location.href;
-  // If in the reference docs, also resize the "swapper", "classes-nav", and "nav-tree"  divs
-  if (href.indexOf("/reference/") != -1) {
-    var swapperHeight = windowHeight - 13;
-    $("#swapper").css({height:swapperHeight + "px"});
-    $("#classes-nav").css({height:swapperHeight - parseInt(resizePackagesNav.css("height")) + "px"});
-    $("#nav-tree").css({height:swapperHeight + "px"});
-
-  // If in the dev guide docs, also resize the "devdoc-nav" div
-  } else if (href.indexOf("/guide/") != -1) {
-    $("#devdoc-nav").css({height:sidenav.css("height")});
-  } else if (href.indexOf("/resources/") != -1) {
-    $("#devdoc-nav").css({height:sidenav.css("height")});
-  }
-
-  // Hide the "Go to top" link if there's no vertical scroll
-  if ( parseInt($("#jd-content").css("height")) <= parseInt(docContent.css("height")) ) {
-    $("a[href='#top']").css({'display':'none'});
-  } else {
-    $("a[href='#top']").css({'display':'inline'});
-  }
-}
-
-/* Resize the width of the "side-nav" and the left margin of the "doc-content" div,
- * which creates the resizable side bar */
-function resizeWidth() {
-  var windowWidth = $(window).width() + "px";
-  if (sidenav.length) {
-    var sidenavWidth = sidenav.css("width");
-  } else {
-    var sidenavWidth = 0;
-  }
-  content.css({marginLeft:parseInt(sidenavWidth) + 6 + "px"}); //account for 6px-wide handle-bar
-
-  if (isIE6) {
-    content.css({width:parseInt(windowWidth) - parseInt(sidenavWidth) - 6 + "px"}); // necessary in order to for scrollbars to be visible
-  }
-
-  resizePackagesNav.css({width:sidenavWidth});
-  classesNav.css({width:sidenavWidth});
-  $("#packages-nav").css({width:sidenavWidth});
-
-  if ($(".side-nav-resizable").length) { // Must check if the nav is resizable because IE6 calls resizeWidth() from resizeAll() for all pages
-    var section = getSection();
-    writeCookie("width", sidenavWidth, section, null);
-  }
-}
-
-/* For IE6 only,
- * because it can't properly perform auto width for "doc-content" div,
- * avoiding this for all browsers provides better performance */
-function resizeAll() {
-  resizeHeight();
-  resizeWidth();
-}
-
-function getBaseUri(uri) {
-  var intlUrl = (uri.substring(0,6) == "/intl/");
-  if (intlUrl) {
-    base = uri.substring(uri.indexOf('intl/')+5,uri.length);
-    base = base.substring(base.indexOf('/')+1, base.length);
-      //alert("intl, returning base url: /" + base);
-    return ("/" + base);
-  } else {
-      //alert("not intl, returning uri as found.");
-    return uri;
-  }
-}
-
-function requestAppendHL(uri) {
-//append "?hl=<lang> to an outgoing request (such as to blog)
-  var lang = getLangPref();
-  if (lang) {
-    var q = 'hl=' + lang;
-    uri += '?' + q;
-    window.location = uri;
-    return false;
-  } else {
-    return true;
-  }
-}
-
-function loadLast(cookiePath) {
-  var location = window.location.href;
-  if (location.indexOf("/"+cookiePath+"/") != -1) {
-    return true;
-  }
-  var lastPage = readCookie(cookiePath + "_lastpage");
-  if (lastPage) {
-    window.location = lastPage;
-    return false;
-  }
-  return true;
-}
-
-$(window).unload(function(){
-  var path = getBaseUri(location.pathname);
-  if (path.indexOf("/reference/") != -1) {
-    writeCookie("lastpage", path, "reference", null);
-  } else if (path.indexOf("/guide/") != -1) {
-    writeCookie("lastpage", path, "guide", null);
-  } else if (path.indexOf("/resources/") != -1) {
-    writeCookie("lastpage", path, "resources", null);
-  }
-});
-
-function toggle(obj, slide) {
-  var ul = $("ul:first", obj);
-  var li = ul.parent();
-  if (li.hasClass("closed")) {
-    if (slide) {
-      ul.slideDown("fast");
-    } else {
-      ul.show();
-    }
-    li.removeClass("closed");
-    li.addClass("open");
-    $(".toggle-img", li).attr("title", "hide pages");
-  } else {
-    ul.slideUp("fast");
-    li.removeClass("open");
-    li.addClass("closed");
-    $(".toggle-img", li).attr("title", "show pages");
-  }
-}
-
-function buildToggleLists() {
-  $(".toggle-list").each(
-    function(i) {
-      $("div:first", this).append("<a class='toggle-img' href='#' title='show pages' onClick='toggle(this.parentNode.parentNode, true); return false;'></a>");
-      $(this).addClass("closed");
-    });
-}
-
-function getNavPref() {
-  var v = readCookie('reference_nav');
-  if (v != NAV_PREF_TREE) {
-    v = NAV_PREF_PANELS;
-  }
-  return v;
-}
-
-function chooseDefaultNav() {
-  nav_pref = getNavPref();
-  if (nav_pref == NAV_PREF_TREE) {
-    $("#nav-panels").toggle();
-    $("#panel-link").toggle();
-    $("#nav-tree").toggle();
-    $("#tree-link").toggle();
-  }
-}
-
-function swapNav() {
-  if (nav_pref == NAV_PREF_TREE) {
-    nav_pref = NAV_PREF_PANELS;
-  } else {
-    nav_pref = NAV_PREF_TREE;
-    init_default_navtree(toRoot);
-  }
-  var date = new Date();
-  date.setTime(date.getTime()+(10*365*24*60*60*1000)); // keep this for 10 years
-  writeCookie("nav", nav_pref, "reference", date.toGMTString());
-
-  $("#nav-panels").toggle();
-  $("#panel-link").toggle();
-  $("#nav-tree").toggle();
-  $("#tree-link").toggle();
-
-  if ($("#nav-tree").is(':visible')) scrollIntoView("nav-tree");
-  else {
-    scrollIntoView("packages-nav");
-    scrollIntoView("classes-nav");
-  }
-}
-
-function scrollIntoView(nav) {
-  var navObj = $("#"+nav);
-  if (navObj.is(':visible')) {
-    var selected = $(".selected", navObj);
-    if (selected.length == 0) return;
-    if (selected.is("div")) selected = selected.parent();
-
-    var scrolling = document.getElementById(nav);
-    var navHeight = navObj.height();
-    var offsetTop = selected.position().top;
-    if (selected.parent().parent().is(".toggle-list")) offsetTop += selected.parent().parent().position().top;
-    if(offsetTop > navHeight - 92) {
-      scrolling.scrollTop = offsetTop - navHeight + 92;
-    }
-  }
-}
-
-function changeTabLang(lang) {
-  var nodes = $("#header-tabs").find("."+lang);
-  for (i=0; i < nodes.length; i++) { // for each node in this language
-    var node = $(nodes[i]);
-    node.siblings().css("display","none"); // hide all siblings
-    if (node.not(":empty").length != 0) { //if this languages node has a translation, show it
-      node.css("display","inline");
-    } else { //otherwise, show English instead
-      node.css("display","none");
-      node.siblings().filter(".en").css("display","inline");
-    }
-  }
-}
-
-function changeNavLang(lang) {
-  var nodes = $("#side-nav").find("."+lang);
-  for (i=0; i < nodes.length; i++) { // for each node in this language
-    var node = $(nodes[i]);
-    node.siblings().css("display","none"); // hide all siblings
-    if (node.not(":empty").length != 0) { // if this languages node has a translation, show it
-      node.css("display","inline");
-    } else { // otherwise, show English instead
-      node.css("display","none");
-      node.siblings().filter(".en").css("display","inline");
-    }
-  }
-}
-
-function changeDocLang(lang) {
-  changeTabLang(lang);
-  changeNavLang(lang);
-}
-
-function changeLangPref(lang, refresh) {
-  var date = new Date();
-  expires = date.toGMTString(date.setTime(date.getTime()+(10*365*24*60*60*1000))); // keep this for 50 years
-  //alert("expires: " + expires)
-  writeCookie("pref_lang", lang, null, expires);
-  //changeDocLang(lang);
-  if (refresh) {
-    l = getBaseUri(location.pathname);
-    window.location = l;
-  }
-}
-
-function loadLangPref() {
-  var lang = readCookie("pref_lang");
-  if (lang != 0) {
-    $("#language").find("option[value='"+lang+"']").attr("selected",true);
-  }
-}
-
-function getLangPref() {
-  var lang = $("#language").find(":selected").attr("value");
-  if (!lang) {
-    lang = readCookie("pref_lang");
-  }
-  return (lang != 0) ? lang : 'en';
-}
-
-
-function toggleContent(obj) {
-  var button = $(obj);
-  var div = $(obj.parentNode);
-  var toggleMe = $(".toggle-content-toggleme",div);
-  if (button.hasClass("show")) {
-    toggleMe.slideDown();
-    button.removeClass("show").addClass("hide");
-  } else {
-    toggleMe.slideUp();
-    button.removeClass("hide").addClass("show");
-  }
-  $("span", button).toggle();
-}
diff --git a/latest-javadoc/assets/android-developer-reference.js b/latest-javadoc/assets/android-developer-reference.js
deleted file mode 100755
index c854f01..0000000
--- a/latest-javadoc/assets/android-developer-reference.js
+++ /dev/null
@@ -1,402 +0,0 @@
-var API_LEVEL_ENABLED_COOKIE = "api_level_enabled";
-var API_LEVEL_INDEX_COOKIE = "api_level_index";
-var minLevelIndex = 0;
-
-function toggleApiLevelSelector(checkbox) {
-  var date = new Date();
-  date.setTime(date.getTime()+(10*365*24*60*60*1000)); // keep this for 10 years
-  var expiration = date.toGMTString();
-  if (checkbox.checked) {
-    $("#apiLevelSelector").removeAttr("disabled");
-    $("#api-level-toggle label").removeClass("disabled");
-    writeCookie(API_LEVEL_ENABLED_COOKIE, 1, null, expiration);
-  } else {
-    $("#apiLevelSelector").attr("disabled","disabled");
-    $("#api-level-toggle label").addClass("disabled");
-    writeCookie(API_LEVEL_ENABLED_COOKIE, 0, null, expiration);
-  }
-  changeApiLevel();
-}
-
-function buildApiLevelSelector() {
-  var userApiLevelEnabled = readCookie(API_LEVEL_ENABLED_COOKIE);
-  var userApiLevelIndex = readCookie(API_LEVEL_INDEX_COOKIE); // No cookie (zero) is the same as maxLevel.
-  
-  if (userApiLevelEnabled == 0) {
-    $("#apiLevelSelector").attr("disabled","disabled");
-  } else {
-    $("#apiLevelCheckbox").attr("checked","checked");
-    $("#api-level-toggle label").removeClass("disabled");
-  }
-  
-  minLevelValue = $("body").attr("class");
-  minLevelIndex = apiKeyToIndex(minLevelValue);
-  var select = $("#apiLevelSelector").html("").change(changeApiLevel);
-  for (var i = SINCE_DATA.length-1; i >= 0; i--) {
-    var option = $("<option />").attr("value",""+SINCE_DATA[i]).append(""+SINCE_LABELS[i]);
-    select.append(option);
-  }
-  
-  // get the DOM element and use setAttribute cuz IE6 fails when using jquery .attr('selected',true)
-  var selectedLevelItem = $("#apiLevelSelector option").get(SINCE_DATA.length - userApiLevelIndex - 1);
-  selectedLevelItem.setAttribute('selected',true);
-}
-
-function changeApiLevel() {
-  var userApiLevelEnabled = readCookie(API_LEVEL_ENABLED_COOKIE);
-  var selectedLevelIndex = SINCE_DATA.length - 1;
-  
-  if (userApiLevelEnabled == 0) {
-    toggleVisisbleApis(selectedLevelIndex, "body");
-  } else {
-    selectedLevelIndex = getSelectedLevelIndex();
-    toggleVisisbleApis(selectedLevelIndex, "body");
-    
-    var date = new Date();
-    date.setTime(date.getTime()+(10*365*24*60*60*1000)); // keep this for 10 years
-    var expiration = date.toGMTString();
-    writeCookie(API_LEVEL_INDEX_COOKIE, selectedLevelIndex, null, expiration);
-  }
-  
-  var thing = ($("#jd-header").html().indexOf("package") != -1) ? "package" : "class";
-  showApiWarning(thing, selectedLevelIndex, minLevelIndex);
-}
-
-function showApiWarning(thing, selectedLevelIndex, minLevelIndex) {
-  if (selectedLevelIndex < minLevelIndex) {
-	  $("#naMessage").show().html("<div><p><strong>This " + thing
-		  + " is not available with API version "
-		  + SINCE_LABELS[selectedLevelIndex] + ".</strong></p>"
-	      + "<p>To reveal this "
-	      + "document, change the value in the API filter above.</p>");
-  } else {
-    $("#naMessage").hide();
-  }
-}
-
-function toggleVisisbleApis(selectedLevelIndex, context) {
-  var apis = $(".api",context);
-  apis.each(function(i) {
-    var obj = $(this);
-    var className = obj.attr("class");
-    var apiLevelPos = className.lastIndexOf("-")+1;
-    var apiLevelEndPos = className.indexOf(" ", apiLevelPos);
-    apiLevelEndPos = apiLevelEndPos != -1 ? apiLevelEndPos : className.length;
-    var apiLevelName = className.substring(apiLevelPos, apiLevelEndPos);
-    var apiLevelIndex = apiKeyToIndex(apiLevelName);
-    if (apiLevelIndex > selectedLevelIndex) {
-      obj.addClass("absent").attr("title","Requires API Level "+SINCE_LABELS[apiLevelIndex]+" or higher");
-    } else {
-      obj.removeClass("absent").removeAttr("title");
-    }
-  });
-}
-
-function apiKeyToIndex(key) {
-  for (i = 0; i < SINCE_DATA.length; i++) {
-    if (SINCE_DATA[i] == key) {
-      return i;
-    }
-  }
-  return -1;
-}
-
-function getSelectedLevelIndex() {
-  return SINCE_DATA.length - $("#apiLevelSelector").attr("selectedIndex") - 1;
-}
-
-/* NAVTREE */
-
-function new_node(me, mom, text, link, children_data, api_level)
-{
-  var node = new Object();
-  node.children = Array();
-  node.children_data = children_data;
-  node.depth = mom.depth + 1;
-
-  node.li = document.createElement("li");
-  mom.get_children_ul().appendChild(node.li);
-
-  node.label_div = document.createElement("div");
-  node.label_div.className = "label";
-  if (api_level != null) {
-    $(node.label_div).addClass("api");
-    $(node.label_div).addClass("api-level-"+api_level);
-  }
-  node.li.appendChild(node.label_div);
-  node.label_div.style.paddingLeft = 10*node.depth + "px";
-
-  if (children_data == null) {
-    // 12 is the width of the triangle and padding extra space
-    node.label_div.style.paddingLeft = ((10*node.depth)+12) + "px";
-  } else {
-    node.label_div.style.paddingLeft = 10*node.depth + "px";
-    node.expand_toggle = document.createElement("a");
-    node.expand_toggle.href = "javascript:void(0)";
-    node.expand_toggle.onclick = function() {
-          if (node.expanded) {
-            $(node.get_children_ul()).slideUp("fast");
-            node.plus_img.src = toAssets + "images/triangle-closed-small.png";
-            node.expanded = false;
-          } else {
-            expand_node(me, node);
-          }
-       };
-    node.label_div.appendChild(node.expand_toggle);
-
-    node.plus_img = document.createElement("img");
-    node.plus_img.src = toAssets + "images/triangle-closed-small.png";
-    node.plus_img.className = "plus";
-    node.plus_img.border = "0";
-    node.expand_toggle.appendChild(node.plus_img);
-
-    node.expanded = false;
-  }
-
-  var a = document.createElement("a");
-  node.label_div.appendChild(a);
-  node.label = document.createTextNode(text);
-  a.appendChild(node.label);
-  if (link) {
-    a.href = me.toroot + link;
-  } else {
-    if (children_data != null) {
-      a.className = "nolink";
-      a.href = "javascript:void(0)";
-      a.onclick = node.expand_toggle.onclick;
-      // This next line shouldn't be necessary.
-      node.expanded = false;
-    }
-  }
-  
-
-  node.children_ul = null;
-  node.get_children_ul = function() {
-      if (!node.children_ul) {
-        node.children_ul = document.createElement("ul");
-        node.children_ul.className = "children_ul";
-        node.children_ul.style.display = "none";
-        node.li.appendChild(node.children_ul);
-      }
-      return node.children_ul;
-    };
-
-  return node;
-}
-
-function expand_node(me, node)
-{
-  if (node.children_data && !node.expanded) {
-    if (node.children_visited) {
-      $(node.get_children_ul()).slideDown("fast");
-    } else {
-      get_node(me, node);
-      if ($(node.label_div).hasClass("absent")) $(node.get_children_ul()).addClass("absent");
-      $(node.get_children_ul()).slideDown("fast");
-    }
-    node.plus_img.src = toAssets + "images/triangle-opened-small.png";
-    node.expanded = true;
-    
-    // perform api level toggling because new nodes are new to the DOM
-    var selectedLevel = $("#apiLevelSelector").attr("selectedIndex");
-    toggleVisisbleApis(selectedLevel, "#side-nav");
-  }
-}
-
-function get_node(me, mom)
-{
-  mom.children_visited = true;
-  for (var i in mom.children_data) {
-    var node_data = mom.children_data[i];
-    mom.children[i] = new_node(me, mom, node_data[0], node_data[1],
-        node_data[2], node_data[3]);
-  }
-}
-
-function this_page_relative(toroot)
-{
-  var full = document.location.pathname;
-  var file = "";
-  if (toroot.substr(0, 1) == "/") {
-    if (full.substr(0, toroot.length) == toroot) {
-      return full.substr(toroot.length);
-    } else {
-      // the file isn't under toroot.  Fail.
-      return null;
-    }
-  } else {
-    if (toroot != "./") {
-      toroot = "./" + toroot;
-    }
-    do {
-      if (toroot.substr(toroot.length-3, 3) == "../" || toroot == "./") {
-        var pos = full.lastIndexOf("/");
-        file = full.substr(pos) + file;
-        full = full.substr(0, pos);
-        toroot = toroot.substr(0, toroot.length-3);
-      }
-    } while (toroot != "" && toroot != "/");
-    return file.substr(1);
-  }
-}
-
-function find_page(url, data)
-{
-  var nodes = data;
-  var result = null;
-  for (var i in nodes) {
-    var d = nodes[i];
-    if (d[1] == url) {
-      return new Array(i);
-    }
-    else if (d[2] != null) {
-      result = find_page(url, d[2]);
-      if (result != null) {
-        return (new Array(i).concat(result));
-      }
-    }
-  }
-  return null;
-}
-
-function load_navtree_data() {
-  var navtreeData = document.createElement("script");
-  navtreeData.setAttribute("type","text/javascript");
-  navtreeData.setAttribute("src", toAssets + "navtree_data.js");
-  $("head").append($(navtreeData));
-}
-
-function init_default_navtree(toroot) {
-  init_navtree("nav-tree", toroot, NAVTREE_DATA);
-  
-  // perform api level toggling because because the whole tree is new to the DOM
-  var selectedLevel = $("#apiLevelSelector").attr("selectedIndex");
-  toggleVisisbleApis(selectedLevel, "#side-nav");
-}
-
-function init_navtree(navtree_id, toroot, root_nodes)
-{
-  var me = new Object();
-  me.toroot = toroot;
-  me.node = new Object();
-
-  me.node.li = document.getElementById(navtree_id);
-  me.node.children_data = root_nodes;
-  me.node.children = new Array();
-  me.node.children_ul = document.createElement("ul");
-  me.node.get_children_ul = function() { return me.node.children_ul; };
-  //me.node.children_ul.className = "children_ul";
-  me.node.li.appendChild(me.node.children_ul);
-  me.node.depth = 0;
-
-  get_node(me, me.node);
-
-  me.this_page = this_page_relative(toroot);
-  me.breadcrumbs = find_page(me.this_page, root_nodes);
-  if (me.breadcrumbs != null && me.breadcrumbs.length != 0) {
-    var mom = me.node;
-    for (var i in me.breadcrumbs) {
-      var j = me.breadcrumbs[i];
-      mom = mom.children[j];
-      expand_node(me, mom);
-    }
-    mom.label_div.className = mom.label_div.className + " selected";
-    addLoadEvent(function() {
-      scrollIntoView("nav-tree");
-      });
-  }
-}
-
-/* TOGGLE INHERITED MEMBERS */
-
-/* Toggle an inherited class (arrow toggle)
- * @param linkObj  The link that was clicked.
- * @param expand  'true' to ensure it's expanded. 'false' to ensure it's closed.
- *                'null' to simply toggle.
- */
-function toggleInherited(linkObj, expand) {
-    var base = linkObj.getAttribute("id");
-    var list = document.getElementById(base + "-list");
-    var summary = document.getElementById(base + "-summary");
-    var trigger = document.getElementById(base + "-trigger");
-    var a = $(linkObj);
-    if ( (expand == null && a.hasClass("closed")) || expand ) {
-        list.style.display = "none";
-        summary.style.display = "block";
-        trigger.src = toAssets + "images/triangle-opened.png";
-        a.removeClass("closed");
-        a.addClass("opened");
-    } else if ( (expand == null && a.hasClass("opened")) || (expand == false) ) {
-        list.style.display = "block";
-        summary.style.display = "none";
-        trigger.src = toAssets + "images/triangle-closed.png";
-        a.removeClass("opened");
-        a.addClass("closed");
-    }
-    return false;
-}
-
-/* Toggle all inherited classes in a single table (e.g. all inherited methods)
- * @param linkObj  The link that was clicked.
- * @param expand  'true' to ensure it's expanded. 'false' to ensure it's closed.
- *                'null' to simply toggle.
- */
-function toggleAllInherited(linkObj, expand) {
-  var a = $(linkObj);
-  var table = $(a.parent().parent().parent()); // ugly way to get table/tbody
-  var expandos = $(".jd-expando-trigger", table);
-  if ( (expand == null && a.text() == "[Expand]") || expand ) {
-    expandos.each(function(i) {
-      toggleInherited(this, true);
-    });
-    a.text("[Collapse]");
-  } else if ( (expand == null && a.text() == "[Collapse]") || (expand == false) ) {
-    expandos.each(function(i) {
-      toggleInherited(this, false);
-    });
-    a.text("[Expand]");
-  }
-  return false;
-}
-
-/* Toggle all inherited members in the class (link in the class title)
- */
-function toggleAllClassInherited() {
-  var a = $("#toggleAllClassInherited"); // get toggle link from class title
-  var toggles = $(".toggle-all", $("#doc-content"));
-  if (a.text() == "[Expand All]") {
-    toggles.each(function(i) {
-      toggleAllInherited(this, true);
-    });
-    a.text("[Collapse All]");
-  } else {
-    toggles.each(function(i) {
-      toggleAllInherited(this, false);
-    });
-    a.text("[Expand All]");
-  }
-  return false;
-}
-
-/* Expand all inherited members in the class. Used when initiating page search */
-function ensureAllInheritedExpanded() {
-  var toggles = $(".toggle-all", $("#doc-content"));
-  toggles.each(function(i) {
-    toggleAllInherited(this, true);
-  });
-  $("#toggleAllClassInherited").text("[Collapse All]");
-}
-
-
-/* HANDLE KEY EVENTS
- * - Listen for Ctrl+F (Cmd on Mac) and expand all inherited members (to aid page search)
- */
-var agent = navigator['userAgent'].toLowerCase();
-var mac = agent.indexOf("macintosh") != -1;
-
-$(document).keydown( function(e) {
-var control = mac ? e.metaKey && !e.ctrlKey : e.ctrlKey; // get ctrl key
-  if (control && e.which == 70) {  // 70 is "F"
-    ensureAllInheritedExpanded();
-  }
-});
\ No newline at end of file
diff --git a/latest-javadoc/assets/customizations.css b/latest-javadoc/assets/customizations.css
deleted file mode 100755
index efe0770..0000000
--- a/latest-javadoc/assets/customizations.css
+++ /dev/null
@@ -1,7 +0,0 @@
-#header {
-  border-bottom: 3px solid #0767a4;
-}
-
-#search_filtered .jd-selected {
-  background-color: #0767a4;
-}
\ No newline at end of file
diff --git a/latest-javadoc/assets/customizations.js b/latest-javadoc/assets/customizations.js
deleted file mode 100755
index e69de29..0000000
--- a/latest-javadoc/assets/customizations.js
+++ /dev/null
diff --git a/latest-javadoc/assets/images/bg_fade.jpg b/latest-javadoc/assets/images/bg_fade.jpg
deleted file mode 100755
index c6c70b6..0000000
--- a/latest-javadoc/assets/images/bg_fade.jpg
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/bg_logo.png b/latest-javadoc/assets/images/bg_logo.png
deleted file mode 100755
index 8c57fc4..0000000
--- a/latest-javadoc/assets/images/bg_logo.png
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/body-gradient-tab.png b/latest-javadoc/assets/images/body-gradient-tab.png
deleted file mode 100755
index 5223ac3..0000000
--- a/latest-javadoc/assets/images/body-gradient-tab.png
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/body-gradient.png b/latest-javadoc/assets/images/body-gradient.png
deleted file mode 100755
index 9d598555..0000000
--- a/latest-javadoc/assets/images/body-gradient.png
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/grad-rule-qv.png b/latest-javadoc/assets/images/grad-rule-qv.png
deleted file mode 100755
index bae2d18..0000000
--- a/latest-javadoc/assets/images/grad-rule-qv.png
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/hr_gray_main.jpg b/latest-javadoc/assets/images/hr_gray_main.jpg
deleted file mode 100755
index f7a0a2f..0000000
--- a/latest-javadoc/assets/images/hr_gray_main.jpg
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/hr_gray_side.jpg b/latest-javadoc/assets/images/hr_gray_side.jpg
deleted file mode 100755
index 6667476..0000000
--- a/latest-javadoc/assets/images/hr_gray_side.jpg
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/left_off.jpg b/latest-javadoc/assets/images/left_off.jpg
deleted file mode 100755
index fd32a64..0000000
--- a/latest-javadoc/assets/images/left_off.jpg
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/left_on.jpg b/latest-javadoc/assets/images/left_on.jpg
deleted file mode 100755
index 143184b..0000000
--- a/latest-javadoc/assets/images/left_on.jpg
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/preliminary.png b/latest-javadoc/assets/images/preliminary.png
deleted file mode 100755
index fe0da3d..0000000
--- a/latest-javadoc/assets/images/preliminary.png
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/resizable-e.gif b/latest-javadoc/assets/images/resizable-e.gif
deleted file mode 100755
index f748097..0000000
--- a/latest-javadoc/assets/images/resizable-e.gif
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/resizable-e2.gif b/latest-javadoc/assets/images/resizable-e2.gif
deleted file mode 100755
index e45d0c5..0000000
--- a/latest-javadoc/assets/images/resizable-e2.gif
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/resizable-eg.gif b/latest-javadoc/assets/images/resizable-eg.gif
deleted file mode 100755
index 6196616..0000000
--- a/latest-javadoc/assets/images/resizable-eg.gif
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/resizable-s.gif b/latest-javadoc/assets/images/resizable-s.gif
deleted file mode 100755
index 7f6a4eb..0000000
--- a/latest-javadoc/assets/images/resizable-s.gif
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/resizable-s2.gif b/latest-javadoc/assets/images/resizable-s2.gif
deleted file mode 100755
index 99e869c..0000000
--- a/latest-javadoc/assets/images/resizable-s2.gif
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/resizable-sg.gif b/latest-javadoc/assets/images/resizable-sg.gif
deleted file mode 100755
index b4bea10..0000000
--- a/latest-javadoc/assets/images/resizable-sg.gif
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/right_off.jpg b/latest-javadoc/assets/images/right_off.jpg
deleted file mode 100755
index 17d2efe..0000000
--- a/latest-javadoc/assets/images/right_off.jpg
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/right_on.jpg b/latest-javadoc/assets/images/right_on.jpg
deleted file mode 100755
index baa2af1..0000000
--- a/latest-javadoc/assets/images/right_on.jpg
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/sidenav-rule.png b/latest-javadoc/assets/images/sidenav-rule.png
deleted file mode 100755
index eab9920..0000000
--- a/latest-javadoc/assets/images/sidenav-rule.png
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/spacer.gif b/latest-javadoc/assets/images/spacer.gif
deleted file mode 100755
index f96b355..0000000
--- a/latest-javadoc/assets/images/spacer.gif
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/triangle-closed-small.png b/latest-javadoc/assets/images/triangle-closed-small.png
deleted file mode 100755
index 002364a..0000000
--- a/latest-javadoc/assets/images/triangle-closed-small.png
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/triangle-closed.png b/latest-javadoc/assets/images/triangle-closed.png
deleted file mode 100755
index a34a055..0000000
--- a/latest-javadoc/assets/images/triangle-closed.png
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/triangle-opened-small.png b/latest-javadoc/assets/images/triangle-opened-small.png
deleted file mode 100755
index e1eb784..0000000
--- a/latest-javadoc/assets/images/triangle-opened-small.png
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/images/triangle-opened.png b/latest-javadoc/assets/images/triangle-opened.png
deleted file mode 100755
index a709604..0000000
--- a/latest-javadoc/assets/images/triangle-opened.png
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/assets/jquery-history.js b/latest-javadoc/assets/jquery-history.js
deleted file mode 100755
index ef96ec3..0000000
--- a/latest-javadoc/assets/jquery-history.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * jQuery history event v0.1
- * Copyright (c) 2008 Tom Rodenberg <tarodenberg gmail com>
- * Licensed under the GPL (http://www.gnu.org/licenses/gpl.html) license.
- */
-(function($) {
-    var currentHash, previousNav, timer, hashTrim = /^.*#/;
-
-    var msie = {
-        iframe: null,
-        getDoc: function() {
-            return msie.iframe.contentWindow.document;
-        },
-        getHash: function() {
-            return msie.getDoc().location.hash;
-        },
-        setHash: function(hash) {
-            var d = msie.getDoc();
-            d.open();
-            d.close();
-            d.location.hash = hash;
-        }
-    };
-
-    var historycheck = function() {
-        var hash = msie.iframe ? msie.getHash() : location.hash;
-        if (hash != currentHash) {
-            currentHash = hash;
-            if (msie.iframe) {
-                location.hash = currentHash;
-            }
-            var current = $.history.getCurrent();
-            $.event.trigger('history', [current, previousNav]);
-            previousNav = current;
-        }
-    };
-
-    $.history = {
-        add: function(hash) {
-            hash = '#' + hash.replace(hashTrim, '');
-            if (currentHash != hash) {
-                var previous = $.history.getCurrent();
-                location.hash = currentHash = hash;
-                if (msie.iframe) {
-                    msie.setHash(currentHash);
-                }
-                $.event.trigger('historyadd', [$.history.getCurrent(), previous]);
-            }
-            if (!timer) {
-                timer = setInterval(historycheck, 100);
-            }
-        },
-        getCurrent: function() {
-            if (currentHash) {
-              return currentHash.replace(hashTrim, '');
-            } else { 
-              return ""; 
-            }
-        }
-    };
-
-    $.fn.history = function(fn) {
-        $(this).bind('history', fn);
-    };
-
-    $.fn.historyadd = function(fn) {
-        $(this).bind('historyadd', fn);
-    };
-
-    $(function() {
-        currentHash = location.hash;
-        if ($.browser.msie) {
-            msie.iframe = $('<iframe style="display:none" src="javascript:false;"></iframe>').prependTo('body')[0];
-            msie.setHash(currentHash);
-            currentHash = msie.getHash();
-        }
-    });
-})(jQuery);
diff --git a/latest-javadoc/assets/jquery-resizable.min.js b/latest-javadoc/assets/jquery-resizable.min.js
deleted file mode 100755
index 67186fe..0000000
--- a/latest-javadoc/assets/jquery-resizable.min.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * jQuery JavaScript Library v1.3.2
- * http://jquery.com/
- *
- * Copyright (c) 2009 John Resig
- * Dual licensed under the MIT and GPL licenses.
- * http://docs.jquery.com/License
- *
- * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
- * Revision: 6246
- */
-(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
-/*
- * Sizzle CSS Selector Engine - v0.9.3
- *  Copyright 2009, The Dojo Foundation
- *  Released under the MIT, BSD, and GPL Licenses.
- *  More information: http://sizzlejs.com/
- */
-(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
-/*
- * jQuery UI 1.7.2
- *
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI
- */
-jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m<n.length;m++){if(j.options[n[m][0]]){n[m][1].apply(j.element,k)}}}},contains:function(k,j){return document.compareDocumentPosition?k.compareDocumentPosition(j)&16:k!==j&&k.contains(j)},hasScroll:function(m,k){if(c(m).css("overflow")=="hidden"){return false}var j=(k&&k=="left")?"scrollLeft":"scrollTop",l=false;if(m[j]>0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/* * jQuery UI Resizable 1.7.2
- *
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Resizables
- *
- * Depends:
- *	ui.core.js
- */
-(function(c){c.widget("ui.resizable",c.extend({},c.ui.mouse,{_init:function(){var e=this,j=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(j.aspectRatio),aspectRatio:j.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:j.helper||j.ghost||j.animate?j.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){if(/relative/.test(this.element.css("position"))&&c.browser.opera){this.element.css({position:"relative",top:"auto",left:"auto"})}this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=j.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var k=this.handles.split(",");this.handles={};for(var f=0;f<k.length;f++){var h=c.trim(k[f]),d="ui-resizable-"+h;var g=c('<div class="ui-resizable-handle '+d+'"></div>');if(/sw|se|ne|nw/.test(h)){g.css({zIndex:++j.zIndex})}if("se"==h){g.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[h]=".ui-resizable-"+h;this.element.append(g)}}this._renderAxis=function(p){p=p||this.element;for(var m in this.handles){if(this.handles[m].constructor==String){this.handles[m]=c(this.handles[m],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var n=c(this.handles[m],this.element),o=0;o=/sw|ne|nw|se|n|s/.test(m)?n.outerHeight():n.outerWidth();var l=["padding",/ne|nw|n/.test(m)?"Top":/se|sw|s/.test(m)?"Bottom":/^e$/.test(m)?"Right":"Left"].join("");p.css(l,o);this._proportionallyResize()}if(!c(this.handles[m]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!e.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}e.axis=i&&i[1]?i[1]:"se"}});if(j.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){c(this).removeClass("ui-resizable-autohide");e._handles.show()},function(){if(!e.resizing){c(this).addClass("ui-resizable-autohide");e._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var d=function(f){c(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){d(this.element);var e=this.element;e.parent().append(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).end().remove()}this.originalElement.css("resize",this.originalResizeStyle);d(this.originalElement)},_mouseCapture:function(e){var f=false;for(var d in this.handles){if(c(this.handles[d])[0]==e.target){f=true}}return this.options.disabled||!!f},_mouseStart:function(f){var i=this.options,e=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(d.is(".ui-draggable")||(/absolute/).test(d.css("position"))){d.css({position:"absolute",top:e.top,left:e.left})}if(c.browser.opera&&(/relative/).test(d.css("position"))){d.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var j=b(this.helper.css("left")),g=b(this.helper.css("top"));if(i.containment){j+=c(i.containment).scrollLeft()||0;g+=c(i.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:j,top:g};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:j,top:g};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:f.pageX,top:f.pageY};this.aspectRatio=(typeof i.aspectRatio=="number")?i.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var h=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",h=="auto"?this.axis+"-resize":h);d.addClass("ui-resizable-resizing");this._propagate("start",f);return true},_mouseDrag:function(d){var g=this.helper,f=this.options,l={},p=this,i=this.originalMousePosition,m=this.axis;var q=(d.pageX-i.left)||0,n=(d.pageY-i.top)||0;var h=this._change[m];if(!h){return false}var k=h.apply(this,[d,q,n]),j=c.browser.msie&&c.browser.version<7,e=this.sizeDiff;if(this._aspectRatio||d.shiftKey){k=this._updateRatio(k,d)}k=this._respectSize(k,d);this._propagate("resize",d);g.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(k);this._trigger("resize",d,this.ui());return false},_mouseStop:function(g){this.resizing=false;var h=this.options,l=this;if(this._helper){var f=this._proportionallyResizeElements,d=f.length&&(/textarea/i).test(f[0].nodeName),e=d&&c.ui.hasScroll(f[0],"left")?0:l.sizeDiff.height,j=d?0:l.sizeDiff.width;var m={width:(l.size.width-j),height:(l.size.height-e)},i=(parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left))||null,k=(parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top))||null;if(!h.animate){this.element.css(c.extend(m,{top:k,left:i}))}l.helper.height(l.size.height);l.helper.width(l.size.width);if(this._helper&&!h.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",g);if(this._helper){this.helper.remove()}return false},_updateCache:function(d){var e=this.options;this.offset=this.helper.offset();if(a(d.left)){this.position.left=d.left}if(a(d.top)){this.position.top=d.top}if(a(d.height)){this.size.height=d.height}if(a(d.width)){this.size.width=d.width}},_updateRatio:function(g,f){var h=this.options,i=this.position,e=this.size,d=this.axis;if(g.height){g.width=(e.height*this.aspectRatio)}else{if(g.width){g.height=(e.width/this.aspectRatio)}}if(d=="sw"){g.left=i.left+(e.width-g.width);g.top=null}if(d=="nw"){g.top=i.top+(e.height-g.height);g.left=i.left+(e.width-g.width)}return g},_respectSize:function(k,f){var i=this.helper,h=this.options,q=this._aspectRatio||f.shiftKey,p=this.axis,s=a(k.width)&&h.maxWidth&&(h.maxWidth<k.width),l=a(k.height)&&h.maxHeight&&(h.maxHeight<k.height),g=a(k.width)&&h.minWidth&&(h.minWidth>k.width),r=a(k.height)&&h.minHeight&&(h.minHeight>k.height);if(g){k.width=h.minWidth}if(r){k.height=h.minHeight}if(s){k.width=h.maxWidth}if(l){k.height=h.maxHeight}var e=this.originalPosition.left+this.originalSize.width,n=this.position.top+this.size.height;var j=/sw|nw|w/.test(p),d=/nw|ne|n/.test(p);if(g&&j){k.left=e-h.minWidth}if(s&&j){k.left=e-h.maxWidth}if(r&&d){k.top=n-h.minHeight}if(l&&d){k.top=n-h.maxHeight}var m=!k.width&&!k.height;if(m&&!k.left&&k.top){k.top=null}else{if(m&&!k.top&&k.left){k.left=null}}return k},_proportionallyResize:function(){var j=this.options;if(!this._proportionallyResizeElements.length){return}var f=this.helper||this.element;for(var e=0;e<this._proportionallyResizeElements.length;e++){var g=this._proportionallyResizeElements[e];if(!this.borderDif){var d=[g.css("borderTopWidth"),g.css("borderRightWidth"),g.css("borderBottomWidth"),g.css("borderLeftWidth")],h=[g.css("paddingTop"),g.css("paddingRight"),g.css("paddingBottom"),g.css("paddingLeft")];this.borderDif=c.map(d,function(k,m){var l=parseInt(k,10)||0,n=parseInt(h[m],10)||0;return l+n})}if(c.browser.msie&&!(!(c(f).is(":hidden")||c(f).parents(":hidden").length))){continue}g.css({height:(f.height()-this.borderDif[0]-this.borderDif[2])||0,width:(f.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var e=this.element,h=this.options;this.elementOffset=e.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var d=c.browser.msie&&c.browser.version<7,f=(d?1:0),g=(d?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+g,height:this.element.outerHeight()+g,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++h.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(f,e,d){return{width:this.originalSize.width+e}},w:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{left:h.left+e,width:f.width-e}},n:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{top:h.top+d,height:f.height-d}},s:function(f,e,d){return{height:this.originalSize.height+d}},se:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},sw:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[f,e,d]))},ne:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},nw:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[f,e,d]))}},_propagate:function(e,d){c.ui.plugin.call(this,e,[d,this.ui()]);(e!="resize"&&this._trigger(e,d,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));c.extend(c.ui.resizable,{version:"1.7.2",eventPrefix:"resize",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input,option",containment:false,delay:0,distance:1,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000}});c.ui.plugin.add("resizable","alsoResize",{start:function(e,f){var d=c(this).data("resizable"),g=d.options;_store=function(h){c(h).each(function(){c(this).data("resizable-alsoresize",{width:parseInt(c(this).width(),10),height:parseInt(c(this).height(),10),left:parseInt(c(this).css("left"),10),top:parseInt(c(this).css("top"),10)})})};if(typeof(g.alsoResize)=="object"&&!g.alsoResize.parentNode){if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];_store(g.alsoResize)}else{c.each(g.alsoResize,function(h,i){_store(h)})}}else{_store(g.alsoResize)}},resize:function(f,h){var e=c(this).data("resizable"),i=e.options,g=e.originalSize,k=e.originalPosition;var j={height:(e.size.height-g.height)||0,width:(e.size.width-g.width)||0,top:(e.position.top-k.top)||0,left:(e.position.left-k.left)||0},d=function(l,m){c(l).each(function(){var p=c(this),q=c(this).data("resizable-alsoresize"),o={},n=m&&m.length?m:["width","height","top","left"];c.each(n||["width","height","top","left"],function(r,t){var s=(q[t]||0)+(j[t]||0);if(s&&s>=0){o[t]=s||null}});if(/relative/.test(p.css("position"))&&c.browser.opera){e._revertToRelativePosition=true;p.css({position:"absolute",top:"auto",left:"auto"})}p.css(o)})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.nodeType){c.each(i.alsoResize,function(l,m){d(l,m)})}else{d(i.alsoResize)}},stop:function(e,f){var d=c(this).data("resizable");if(d._revertToRelativePosition&&c.browser.opera){d._revertToRelativePosition=false;el.css({position:"relative"})}c(this).removeData("resizable-alsoresize-start")}});c.ui.plugin.add("resizable","animate",{stop:function(h,m){var n=c(this).data("resizable"),i=n.options;var g=n._proportionallyResizeElements,d=g.length&&(/textarea/i).test(g[0].nodeName),e=d&&c.ui.hasScroll(g[0],"left")?0:n.sizeDiff.height,k=d?0:n.sizeDiff.width;var f={width:(n.size.width-k),height:(n.size.height-e)},j=(parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left))||null,l=(parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top))||null;n.element.animate(c.extend(f,l&&j?{top:l,left:j}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var o={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};if(g&&g.length){c(g[0]).css({width:o.width,height:o.height})}n._updateCache(o);n._propagate("resize",h)}})}});c.ui.plugin.add("resizable","containment",{start:function(e,q){var s=c(this).data("resizable"),i=s.options,k=s.element;var f=i.containment,j=(f instanceof c)?f.get(0):(/parent/.test(f))?k.parent().get(0):f;if(!j){return}s.containerElement=c(j);if(/document/.test(f)||f==document){s.containerOffset={left:0,top:0};s.containerPosition={left:0,top:0};s.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var m=c(j),h=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){h[p]=b(m.css("padding"+o))});s.containerOffset=m.offset();s.containerPosition=m.position();s.containerSize={height:(m.innerHeight()-h[3]),width:(m.innerWidth()-h[1])};var n=s.containerOffset,d=s.containerSize.height,l=s.containerSize.width,g=(c.ui.hasScroll(j,"left")?j.scrollWidth:l),r=(c.ui.hasScroll(j)?j.scrollHeight:d);s.parentData={element:j,left:n.left,top:n.top,width:g,height:r}}},resize:function(f,p){var s=c(this).data("resizable"),h=s.options,e=s.containerSize,n=s.containerOffset,l=s.size,m=s.position,q=s._aspectRatio||f.shiftKey,d={top:0,left:0},g=s.containerElement;if(g[0]!=document&&(/static/).test(g.css("position"))){d=n}if(m.left<(s._helper?n.left:0)){s.size.width=s.size.width+(s._helper?(s.position.left-n.left):(s.position.left-d.left));if(q){s.size.height=s.size.width/h.aspectRatio}s.position.left=h.helper?n.left:0}if(m.top<(s._helper?n.top:0)){s.size.height=s.size.height+(s._helper?(s.position.top-n.top):s.position.top);if(q){s.size.width=s.size.height*h.aspectRatio}s.position.top=s._helper?n.top:0}s.offset.left=s.parentData.left+s.position.left;s.offset.top=s.parentData.top+s.position.top;var k=Math.abs((s._helper?s.offset.left-d.left:(s.offset.left-d.left))+s.sizeDiff.width),r=Math.abs((s._helper?s.offset.top-d.top:(s.offset.top-n.top))+s.sizeDiff.height);var j=s.containerElement.get(0)==s.element.parent().get(0),i=/relative|absolute/.test(s.containerElement.css("position"));if(j&&i){k-=s.parentData.left}if(k+s.size.width>=s.parentData.width){s.size.width=s.parentData.width-k;if(q){s.size.height=s.size.width/s.aspectRatio}}if(r+s.size.height>=s.parentData.height){s.size.height=s.parentData.height-r;if(q){s.size.width=s.size.height*s.aspectRatio}}},stop:function(e,m){var p=c(this).data("resizable"),f=p.options,k=p.position,l=p.containerOffset,d=p.containerPosition,g=p.containerElement;var i=c(p.helper),q=i.offset(),n=i.outerWidth()-p.sizeDiff.width,j=i.outerHeight()-p.sizeDiff.height;if(p._helper&&!f.animate&&(/relative/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}if(p._helper&&!f.animate&&(/static/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}}});c.ui.plugin.add("resizable","ghost",{start:function(f,g){var d=c(this).data("resizable"),h=d.options,e=d.size;d.ghost=d.originalElement.clone();d.ghost.css({opacity:0.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof h.ghost=="string"?h.ghost:"");d.ghost.appendTo(d.helper)},resize:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost){d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})}},stop:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost&&d.helper){d.helper.get(0).removeChild(d.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(d,l){var n=c(this).data("resizable"),g=n.options,j=n.size,h=n.originalSize,i=n.originalPosition,m=n.axis,k=g._aspectRatio||d.shiftKey;g.grid=typeof g.grid=="number"?[g.grid,g.grid]:g.grid;var f=Math.round((j.width-h.width)/(g.grid[0]||1))*(g.grid[0]||1),e=Math.round((j.height-h.height)/(g.grid[1]||1))*(g.grid[1]||1);if(/^(se|s|e)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e}else{if(/^(ne)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e}else{if(/^(sw)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.left=i.left-f}else{n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e;n.position.left=i.left-f}}}}});var b=function(d){return parseInt(d,10)||0};var a=function(d){return !isNaN(parseInt(d,10))}})(jQuery);;
diff --git a/latest-javadoc/assets/microtemplate.js b/latest-javadoc/assets/microtemplate.js
deleted file mode 100755
index ada1235..0000000
--- a/latest-javadoc/assets/microtemplate.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Simple JavaScript Templating
-// John Resig - http://ejohn.org/ - MIT Licensed
-(function(){
-  var cache = {};
-
-  this.tmpl = function tmpl(str, data){
-    // Figure out if we're getting a template, or if we need to
-    // load the template - and be sure to cache the result.
-    var fn = !/\W/.test(str) ?
-      cache[str] = cache[str] ||
-        tmpl(document.getElementById(str).innerHTML) :
-
-      // Generate a reusable function that will serve as a template
-      // generator (and which will be cached).
-      new Function("obj",
-        "var p=[],print=function(){p.push.apply(p,arguments);};" +
-
-        // Introduce the data as local variables using with(){}
-        "with(obj){p.push('" +
-
-        // Convert the template into pure JavaScript
-        str
-          .replace(/[\r\t\n]/g, " ")
-          .split("<%").join("\t")
-          .replace(/((^|%>)[^\t]*)'/g, "$1\r")
-          .replace(/\t=(.*?)%>/g, "',$1,'")
-          .split("\t").join("');")
-          .split("%>").join("p.push('")
-          .split("\r").join("\\'")
-      + "');}return p.join('');");
-
-    // Provide some basic currying to the user
-    return data ? fn( data ) : fn;
-  };
-})();
\ No newline at end of file
diff --git a/latest-javadoc/assets/navtree_data.js b/latest-javadoc/assets/navtree_data.js
deleted file mode 100755
index c499302..0000000
--- a/latest-javadoc/assets/navtree_data.js
+++ /dev/null
@@ -1,66 +0,0 @@
-var NAVTREE_DATA =
-[ [ "com.google.inject", "com/google/inject/package-summary.html", [ [ "Description", "com/google/inject/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "Binder", "com/google/inject/Binder.html", null, "Guice_1.0" ], [ "Binding", "com/google/inject/Binding.html", null, "Guice_1.0" ], [ "Injector", "com/google/inject/Injector.html", null, "Guice_1.0" ], [ "MembersInjector", "com/google/inject/MembersInjector.html", null, "Guice_2.0" ], [ "Module", "com/google/inject/Module.html", null, "Guice_1.0" ], [ "PrivateBinder", "com/google/inject/PrivateBinder.html", null, "Guice_2.0" ], [ "Provider", "com/google/inject/Provider.html", null, "Guice_1.0" ], [ "Scope", "com/google/inject/Scope.html", null, "Guice_1.0" ] ]
-, "" ], [ "Classes", null, [ [ "AbstractModule", "com/google/inject/AbstractModule.html", null, "Guice_1.0" ], [ "Guice", "com/google/inject/Guice.html", null, "Guice_1.0" ], [ "Key", "com/google/inject/Key.html", null, "Guice_1.0" ], [ "PrivateModule", "com/google/inject/PrivateModule.html", null, "Guice_2.0" ], [ "Scopes", "com/google/inject/Scopes.html", null, "Guice_1.0" ], [ "TypeLiteral", "com/google/inject/TypeLiteral.html", null, "Guice_1.0" ] ]
-, "" ], [ "Annotations", null, [ [ "BindingAnnotation", "com/google/inject/BindingAnnotation.html", null, "Guice_1.0" ], [ "Exposed", "com/google/inject/Exposed.html", null, "Guice_2.0" ], [ "ImplementedBy", "com/google/inject/ImplementedBy.html", null, "Guice_1.0" ], [ "Inject", "com/google/inject/Inject.html", null, "Guice_1.0" ], [ "ProvidedBy", "com/google/inject/ProvidedBy.html", null, "Guice_1.0" ], [ "Provides", "com/google/inject/Provides.html", null, "Guice_2.0" ], [ "ScopeAnnotation", "com/google/inject/ScopeAnnotation.html", null, "Guice_1.0" ], [ "Singleton", "com/google/inject/Singleton.html", null, "Guice_1.0" ] ]
-, "" ], [ "Enums", null, [ [ "Stage", "com/google/inject/Stage.html", null, "Guice_1.0" ] ]
-, "" ], [ "Exceptions", null, [ [ "ConfigurationException", "com/google/inject/ConfigurationException.html", null, "Guice_2.0" ], [ "CreationException", "com/google/inject/CreationException.html", null, "Guice_1.0" ], [ "OutOfScopeException", "com/google/inject/OutOfScopeException.html", null, "Guice_2.0" ], [ "ProvisionException", "com/google/inject/ProvisionException.html", null, "Guice_2.0" ] ]
-, "" ] ]
-, "Guice_1.0" ], [ "com.google.inject.assistedinject", "com/google/inject/assistedinject/package-summary.html", [ [ "Description", "com/google/inject/assistedinject/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "AssistedInjectBinding", "com/google/inject/assistedinject/AssistedInjectBinding.html", null, "Guice_3.0" ], [ "AssistedInjectTargetVisitor", "com/google/inject/assistedinject/AssistedInjectTargetVisitor.html", null, "Guice_3.0" ], [ "AssistedMethod", "com/google/inject/assistedinject/AssistedMethod.html", null, "Guice_3.0" ] ]
-, "" ], [ "Classes", null, [ [ "FactoryModuleBuilder", "com/google/inject/assistedinject/FactoryModuleBuilder.html", null, "Guice_3.0" ], [ "FactoryProvider", "com/google/inject/assistedinject/FactoryProvider.html", null, "Guice_2.0" ] ]
-, "" ], [ "Annotations", null, [ [ "Assisted", "com/google/inject/assistedinject/Assisted.html", null, "Guice_2.0" ], [ "AssistedInject", "com/google/inject/assistedinject/AssistedInject.html", null, "Guice_2.0" ] ]
-, "" ] ]
-, "Guice_2.0" ], [ "com.google.inject.binder", "com/google/inject/binder/package-summary.html", [ [ "Description", "com/google/inject/binder/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "AnnotatedBindingBuilder", "com/google/inject/binder/AnnotatedBindingBuilder.html", null, "Guice_1.0" ], [ "AnnotatedConstantBindingBuilder", "com/google/inject/binder/AnnotatedConstantBindingBuilder.html", null, "Guice_1.0" ], [ "AnnotatedElementBuilder", "com/google/inject/binder/AnnotatedElementBuilder.html", null, "Guice_2.0" ], [ "ConstantBindingBuilder", "com/google/inject/binder/ConstantBindingBuilder.html", null, "Guice_1.0" ], [ "LinkedBindingBuilder", "com/google/inject/binder/LinkedBindingBuilder.html", null, "Guice_1.0" ], [ "ScopedBindingBuilder", "com/google/inject/binder/ScopedBindingBuilder.html", null, "Guice_1.0" ] ]
-, "" ] ]
-, "Guice_1.0" ], [ "com.google.inject.grapher", "com/google/inject/grapher/package-summary.html", [ [ "Description", "com/google/inject/grapher/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "BindingEdge", "com/google/inject/grapher/BindingEdge.html", null, "Guice_3.0" ], [ "BindingEdge.Factory", "com/google/inject/grapher/BindingEdge.Factory.html", null, "Guice_3.0" ], [ "DependencyEdge", "com/google/inject/grapher/DependencyEdge.html", null, "Guice_3.0" ], [ "DependencyEdge.Factory", "com/google/inject/grapher/DependencyEdge.Factory.html", null, "Guice_3.0" ], [ "ImplementationNode", "com/google/inject/grapher/ImplementationNode.html", null, "Guice_3.0" ], [ "ImplementationNode.Factory", "com/google/inject/grapher/ImplementationNode.Factory.html", null, "Guice_3.0" ], [ "InterfaceNode", "com/google/inject/grapher/InterfaceNode.html", null, "Guice_3.0" ], [ "InterfaceNode.Factory", "com/google/inject/grapher/InterfaceNode.Factory.html", null, "Guice_3.0" ], [ "NameFactory", "com/google/inject/grapher/NameFactory.html", null, "Guice_3.0" ], [ "NodeAliasFactory", "com/google/inject/grapher/NodeAliasFactory.html", null, "Guice_3.0" ], [ "NodeIdFactory", "com/google/inject/grapher/NodeIdFactory.html", null, "Guice_3.0" ], [ "Renderer", "com/google/inject/grapher/Renderer.html", null, "Guice_3.0" ] ]
-, "" ], [ "Classes", null, [ [ "GrapherModule", "com/google/inject/grapher/GrapherModule.html", null, "Guice_3.0" ], [ "GraphingVisitor", "com/google/inject/grapher/GraphingVisitor.html", null, "Guice_3.0" ], [ "InjectorGrapher", "com/google/inject/grapher/InjectorGrapher.html", null, "Guice_3.0" ], [ "ShortNameFactory", "com/google/inject/grapher/ShortNameFactory.html", null, "Guice_3.0" ], [ "StringNodeIdFactory", "com/google/inject/grapher/StringNodeIdFactory.html", null, "Guice_3.0" ], [ "TransitiveDependencyVisitor", "com/google/inject/grapher/TransitiveDependencyVisitor.html", null, "Guice_3.0" ] ]
-, "" ], [ "Enums", null, [ [ "BindingEdge.Type", "com/google/inject/grapher/BindingEdge.Type.html", null, "Guice_3.0" ] ]
-, "" ] ]
-, "Guice_3.0" ], [ "com.google.inject.grapher.graphviz", "com/google/inject/grapher/graphviz/package-summary.html", [ [ "Description", "com/google/inject/grapher/graphviz/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "PortIdFactory", "com/google/inject/grapher/graphviz/PortIdFactory.html", null, "Guice_3.0" ] ]
-, "" ], [ "Classes", null, [ [ "BindingEdgeFactory", "com/google/inject/grapher/graphviz/BindingEdgeFactory.html", null, "Guice_3.0" ], [ "BindingEdgeFactory.GraphvizEdgeAdaptor", "com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html", null, "Guice_3.0" ], [ "DependencyEdgeFactory", "com/google/inject/grapher/graphviz/DependencyEdgeFactory.html", null, "Guice_3.0" ], [ "DependencyEdgeFactory.GraphvizEdgeAdaptor", "com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html", null, "Guice_3.0" ], [ "GraphvizEdge", "com/google/inject/grapher/graphviz/GraphvizEdge.html", null, "Guice_3.0" ], [ "GraphvizModule", "com/google/inject/grapher/graphviz/GraphvizModule.html", null, "Guice_3.0" ], [ "GraphvizNode", "com/google/inject/grapher/graphviz/GraphvizNode.html", null, "Guice_3.0" ], [ "GraphvizRenderer", "com/google/inject/grapher/graphviz/GraphvizRenderer.html", null, "Guice_3.0" ], [ "ImplementationNodeFactory", "com/google/inject/grapher/graphviz/ImplementationNodeFactory.html", null, "Guice_3.0" ], [ "ImplementationNodeFactory.GraphvizNodeAdaptor", "com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html", null, "Guice_3.0" ], [ "InterfaceNodeFactory", "com/google/inject/grapher/graphviz/InterfaceNodeFactory.html", null, "Guice_3.0" ], [ "InterfaceNodeFactory.GraphvizNodeAdaptor", "com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html", null, "Guice_3.0" ], [ "PortIdFactoryImpl", "com/google/inject/grapher/graphviz/PortIdFactoryImpl.html", null, "Guice_3.0" ] ]
-, "" ], [ "Enums", null, [ [ "ArrowType", "com/google/inject/grapher/graphviz/ArrowType.html", null, "Guice_3.0" ], [ "CompassPoint", "com/google/inject/grapher/graphviz/CompassPoint.html", null, "Guice_3.0" ], [ "EdgeStyle", "com/google/inject/grapher/graphviz/EdgeStyle.html", null, "Guice_3.0" ], [ "NodeShape", "com/google/inject/grapher/graphviz/NodeShape.html", null, "Guice_3.0" ], [ "NodeStyle", "com/google/inject/grapher/graphviz/NodeStyle.html", null, "Guice_3.0" ] ]
-, "" ] ]
-, "Guice_3.0" ], [ "com.google.inject.jndi", "com/google/inject/jndi/package-summary.html", [ [ "Description", "com/google/inject/jndi/package-descr.html", null, "" ], [ "Classes", null, [ [ "JndiIntegration", "com/google/inject/jndi/JndiIntegration.html", null, "Guice_1.0" ] ]
-, "" ] ]
-, "Guice_1.0" ], [ "com.google.inject.matcher", "com/google/inject/matcher/package-summary.html", [ [ "Description", "com/google/inject/matcher/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "Matcher", "com/google/inject/matcher/Matcher.html", null, "Guice_1.0" ] ]
-, "" ], [ "Classes", null, [ [ "AbstractMatcher", "com/google/inject/matcher/AbstractMatcher.html", null, "Guice_1.0" ], [ "Matchers", "com/google/inject/matcher/Matchers.html", null, "Guice_1.0" ] ]
-, "" ] ]
-, "Guice_1.0" ], [ "com.google.inject.multibindings", "com/google/inject/multibindings/package-summary.html", [ [ "Description", "com/google/inject/multibindings/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "MapBinderBinding", "com/google/inject/multibindings/MapBinderBinding.html", null, "Guice_3.0" ], [ "MultibinderBinding", "com/google/inject/multibindings/MultibinderBinding.html", null, "Guice_3.0" ], [ "MultibindingsTargetVisitor", "com/google/inject/multibindings/MultibindingsTargetVisitor.html", null, "Guice_3.0" ] ]
-, "" ], [ "Classes", null, [ [ "MapBinder", "com/google/inject/multibindings/MapBinder.html", null, "Guice_2.0" ], [ "Multibinder", "com/google/inject/multibindings/Multibinder.html", null, "Guice_2.0" ] ]
-, "" ] ]
-, "Guice_2.0" ], [ "com.google.inject.name", "com/google/inject/name/package-summary.html", [ [ "Description", "com/google/inject/name/package-descr.html", null, "" ], [ "Classes", null, [ [ "Names", "com/google/inject/name/Names.html", null, "Guice_1.0" ] ]
-, "" ], [ "Annotations", null, [ [ "Named", "com/google/inject/name/Named.html", null, "Guice_1.0" ] ]
-, "" ] ]
-, "Guice_1.0" ], [ "com.google.inject.persist", "com/google/inject/persist/package-summary.html", [ [ "Description", "com/google/inject/persist/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "PersistService", "com/google/inject/persist/PersistService.html", null, "Guice_3.0" ], [ "UnitOfWork", "com/google/inject/persist/UnitOfWork.html", null, "Guice_3.0" ] ]
-, "" ], [ "Classes", null, [ [ "PersistFilter", "com/google/inject/persist/PersistFilter.html", null, "Guice_3.0" ], [ "PersistModule", "com/google/inject/persist/PersistModule.html", null, "Guice_3.0" ] ]
-, "" ], [ "Annotations", null, [ [ "Transactional", "com/google/inject/persist/Transactional.html", null, "Guice_3.0" ] ]
-, "" ] ]
-, "Guice_3.0" ], [ "com.google.inject.persist.finder", "com/google/inject/persist/finder/package-summary.html", [ [ "Description", "com/google/inject/persist/finder/package-descr.html", null, "" ], [ "Classes", null, [ [ "DynamicFinder", "com/google/inject/persist/finder/DynamicFinder.html", null, "Guice_3.0" ] ]
-, "" ], [ "Annotations", null, [ [ "Finder", "com/google/inject/persist/finder/Finder.html", null, "Guice_3.0" ], [ "FirstResult", "com/google/inject/persist/finder/FirstResult.html", null, "Guice_3.0" ], [ "MaxResults", "com/google/inject/persist/finder/MaxResults.html", null, "Guice_3.0" ] ]
-, "" ] ]
-, "Guice_3.0" ], [ "com.google.inject.persist.jpa", "com/google/inject/persist/jpa/package-summary.html", [ [ "Description", "com/google/inject/persist/jpa/package-descr.html", null, "" ], [ "Classes", null, [ [ "JpaPersistModule", "com/google/inject/persist/jpa/JpaPersistModule.html", null, "Guice_3.0" ] ]
-, "" ] ]
-, "Guice_3.0" ], [ "com.google.inject.servlet", "com/google/inject/servlet/package-summary.html", [ [ "Description", "com/google/inject/servlet/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "InstanceFilterBinding", "com/google/inject/servlet/InstanceFilterBinding.html", null, "Guice_3.0" ], [ "InstanceServletBinding", "com/google/inject/servlet/InstanceServletBinding.html", null, "Guice_3.0" ], [ "LinkedFilterBinding", "com/google/inject/servlet/LinkedFilterBinding.html", null, "Guice_3.0" ], [ "LinkedServletBinding", "com/google/inject/servlet/LinkedServletBinding.html", null, "Guice_3.0" ], [ "ServletModule.FilterKeyBindingBuilder", "com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html", null, "Guice_2.0" ], [ "ServletModule.ServletKeyBindingBuilder", "com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html", null, "Guice_2.0" ], [ "ServletModuleBinding", "com/google/inject/servlet/ServletModuleBinding.html", null, "Guice_3.0" ], [ "ServletModuleTargetVisitor", "com/google/inject/servlet/ServletModuleTargetVisitor.html", null, "Guice_3.0" ] ]
-, "" ], [ "Classes", null, [ [ "GuiceFilter", "com/google/inject/servlet/GuiceFilter.html", null, "Guice_1.0" ], [ "GuiceServletContextListener", "com/google/inject/servlet/GuiceServletContextListener.html", null, "Guice_2.0" ], [ "ServletModule", "com/google/inject/servlet/ServletModule.html", null, "Guice_1.0" ], [ "ServletScopes", "com/google/inject/servlet/ServletScopes.html", null, "Guice_1.0" ] ]
-, "" ], [ "Annotations", null, [ [ "RequestParameters", "com/google/inject/servlet/RequestParameters.html", null, "Guice_1.0" ], [ "RequestScoped", "com/google/inject/servlet/RequestScoped.html", null, "Guice_1.0" ], [ "SessionScoped", "com/google/inject/servlet/SessionScoped.html", null, "Guice_1.0" ] ]
-, "" ], [ "Enums", null, [ [ "UriPatternType", "com/google/inject/servlet/UriPatternType.html", null, "Guice_3.0" ] ]
-, "" ] ]
-, "Guice_1.0" ], [ "com.google.inject.spi", "com/google/inject/spi/package-summary.html", [ [ "Description", "com/google/inject/spi/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "BindingScopingVisitor", "com/google/inject/spi/BindingScopingVisitor.html", null, "Guice_2.0" ], [ "BindingTargetVisitor", "com/google/inject/spi/BindingTargetVisitor.html", null, "Guice_2.0" ], [ "ConstructorBinding", "com/google/inject/spi/ConstructorBinding.html", null, "Guice_2.0" ], [ "ConvertedConstantBinding", "com/google/inject/spi/ConvertedConstantBinding.html", null, "Guice_2.0" ], [ "Element", "com/google/inject/spi/Element.html", null, "Guice_2.0" ], [ "ElementVisitor", "com/google/inject/spi/ElementVisitor.html", null, "Guice_2.0" ], [ "ExposedBinding", "com/google/inject/spi/ExposedBinding.html", null, "Guice_2.0" ], [ "HasDependencies", "com/google/inject/spi/HasDependencies.html", null, "Guice_2.0" ], [ "InjectionListener", "com/google/inject/spi/InjectionListener.html", null, "Guice_2.0" ], [ "InstanceBinding", "com/google/inject/spi/InstanceBinding.html", null, "Guice_2.0" ], [ "LinkedKeyBinding", "com/google/inject/spi/LinkedKeyBinding.html", null, "Guice_2.0" ], [ "PrivateElements", "com/google/inject/spi/PrivateElements.html", null, "Guice_2.0" ], [ "ProviderBinding", "com/google/inject/spi/ProviderBinding.html", null, "Guice_2.0" ], [ "ProviderInstanceBinding", "com/google/inject/spi/ProviderInstanceBinding.html", null, "Guice_2.0" ], [ "ProviderKeyBinding", "com/google/inject/spi/ProviderKeyBinding.html", null, "Guice_2.0" ], [ "ProviderWithDependencies", "com/google/inject/spi/ProviderWithDependencies.html", null, "Guice_2.0" ], [ "ProviderWithExtensionVisitor", "com/google/inject/spi/ProviderWithExtensionVisitor.html", null, "Guice_3.0" ], [ "TypeConverter", "com/google/inject/spi/TypeConverter.html", null, "Guice_2.0" ], [ "TypeEncounter", "com/google/inject/spi/TypeEncounter.html", null, "Guice_2.0" ], [ "TypeListener", "com/google/inject/spi/TypeListener.html", null, "Guice_2.0" ], [ "UntargettedBinding", "com/google/inject/spi/UntargettedBinding.html", null, "Guice_2.0" ] ]
-, "" ], [ "Classes", null, [ [ "DefaultBindingScopingVisitor", "com/google/inject/spi/DefaultBindingScopingVisitor.html", null, "Guice_2.0" ], [ "DefaultBindingTargetVisitor", "com/google/inject/spi/DefaultBindingTargetVisitor.html", null, "Guice_2.0" ], [ "DefaultElementVisitor", "com/google/inject/spi/DefaultElementVisitor.html", null, "Guice_2.0" ], [ "Dependency", "com/google/inject/spi/Dependency.html", null, "Guice_2.0" ], [ "DisableCircularProxiesOption", "com/google/inject/spi/DisableCircularProxiesOption.html", null, "Guice_3.0" ], [ "Elements", "com/google/inject/spi/Elements.html", null, "Guice_2.0" ], [ "InjectionPoint", "com/google/inject/spi/InjectionPoint.html", null, "Guice_2.0" ], [ "InjectionRequest", "com/google/inject/spi/InjectionRequest.html", null, "Guice_2.0" ], [ "InterceptorBinding", "com/google/inject/spi/InterceptorBinding.html", null, "Guice_2.0" ], [ "MembersInjectorLookup", "com/google/inject/spi/MembersInjectorLookup.html", null, "Guice_2.0" ], [ "Message", "com/google/inject/spi/Message.html", null, "Guice_1.0" ], [ "ProviderLookup", "com/google/inject/spi/ProviderLookup.html", null, "Guice_2.0" ], [ "RequireExplicitBindingsOption", "com/google/inject/spi/RequireExplicitBindingsOption.html", null, "Guice_3.0" ], [ "ScopeBinding", "com/google/inject/spi/ScopeBinding.html", null, "Guice_2.0" ], [ "StaticInjectionRequest", "com/google/inject/spi/StaticInjectionRequest.html", null, "Guice_2.0" ], [ "TypeConverterBinding", "com/google/inject/spi/TypeConverterBinding.html", null, "Guice_2.0" ], [ "TypeListenerBinding", "com/google/inject/spi/TypeListenerBinding.html", null, "Guice_2.0" ] ]
-, "" ], [ "Annotations", null, [ [ "Toolable", "com/google/inject/spi/Toolable.html", null, "Guice_3.0" ] ]
-, "" ] ]
-, "Guice_1.0" ], [ "com.google.inject.spring", "com/google/inject/spring/package-summary.html", [ [ "Description", "com/google/inject/spring/package-descr.html", null, "" ], [ "Classes", null, [ [ "SpringIntegration", "com/google/inject/spring/SpringIntegration.html", null, "Guice_2.0" ] ]
-, "" ] ]
-, "Guice_2.0" ], [ "com.google.inject.throwingproviders", "com/google/inject/throwingproviders/package-summary.html", [ [ "Description", "com/google/inject/throwingproviders/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "CheckedProvider", "com/google/inject/throwingproviders/CheckedProvider.html", null, "Guice_3.0" ], [ "ThrowingProvider", "com/google/inject/throwingproviders/ThrowingProvider.html", null, "Guice_2.0" ] ]
-, "" ], [ "Classes", null, [ [ "ThrowingProviderBinder", "com/google/inject/throwingproviders/ThrowingProviderBinder.html", null, "Guice_2.0" ], [ "ThrowingProviderBinder.SecondaryBinder", "com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html", null, "Guice_2.0" ] ]
-, "" ], [ "Annotations", null, [ [ "CheckedProvides", "com/google/inject/throwingproviders/CheckedProvides.html", null, "Guice_3.0" ] ]
-, "" ] ]
-, "Guice_2.0" ], [ "com.google.inject.tools.jmx", "com/google/inject/tools/jmx/package-summary.html", [ [ "Description", "com/google/inject/tools/jmx/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "ManagedBindingMBean", "com/google/inject/tools/jmx/ManagedBindingMBean.html", null, "Guice_1.0" ] ]
-, "" ], [ "Classes", null, [ [ "Manager", "com/google/inject/tools/jmx/Manager.html", null, "Guice_1.0" ] ]
-, "" ] ]
-, "Guice_1.0" ], [ "com.google.inject.util", "com/google/inject/util/package-summary.html", [ [ "Description", "com/google/inject/util/package-descr.html", null, "" ], [ "Interfaces", null, [ [ "Modules.OverriddenModuleBuilder", "com/google/inject/util/Modules.OverriddenModuleBuilder.html", null, "Guice_2.0" ] ]
-, "" ], [ "Classes", null, [ [ "Modules", "com/google/inject/util/Modules.html", null, "Guice_2.0" ], [ "Providers", "com/google/inject/util/Providers.html", null, "Guice_2.0" ], [ "Types", "com/google/inject/util/Types.html", null, "Guice_2.0" ] ]
-, "" ] ]
-, "Guice_2.0" ] ]
-
-;
-
diff --git a/latest-javadoc/assets/prettify.js b/latest-javadoc/assets/prettify.js
deleted file mode 100755
index 076f9d0..0000000
--- a/latest-javadoc/assets/prettify.js
+++ /dev/null
@@ -1,33 +0,0 @@
-(function(){
-var o=true,r=null,z=false;window.PR_SHOULD_USE_CONTINUATION=o;window.PR_TAB_WIDTH=8;window.PR_normalizedHtml=window.PR=window.prettyPrintOne=window.prettyPrint=void 0;window._pr_isIE6=function(){var N=navigator&&navigator.userAgent&&/\bMSIE 6\./.test(navigator.userAgent);window._pr_isIE6=function(){return N};return N};
-var aa="!",ba="!=",ca="!==",F="#",da="%",ea="%=",G="&",fa="&&",ja="&&=",ka="&=",H="(",la="*",ma="*=",na="+=",oa=",",pa="-=",qa="->",ra="/",sa="/=",ta=":",ua="::",va=";",I="<",wa="<<",xa="<<=",ya="<=",za="=",Aa="==",Ba="===",J=">",Ca=">=",Da=">>",Ea=">>=",Fa=">>>",Ga=">>>=",Ha="?",Ia="@",L="[",M="^",Ta="^=",Ua="^^",Va="^^=",Wa="{",O="|",Xa="|=",Ya="||",Za="||=",$a="~",ab="break",bb="case",cb="continue",db="delete",eb="do",fb="else",gb="finally",hb="instanceof",ib="return",jb="throw",kb="try",lb="typeof",
-mb="(?:^^|[+-]",nb="\\$1",ob=")\\s*",pb="&amp;",qb="&lt;",rb="&gt;",sb="&quot;",tb="&#",ub="x",vb="'",wb='"',xb=" ",yb="XMP",zb="</",Ab='="',P="",Q="\\",Bb="b",Cb="t",Db="n",Eb="v",Fb="f",Gb="r",Hb="u",Ib="0",Jb="1",Kb="2",Lb="3",Mb="4",Nb="5",Ob="6",Pb="7",Qb="\\x0",Rb="\\x",Sb="-",Tb="]",Ub="\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]",R="g",Vb="\\B",Wb="\\b",Xb="\\D",Yb="\\d",Zb="\\S",$b="\\s",ac="\\W",bc="\\w",cc="(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)",
-dc="(?:",ec=")",fc="gi",gc="PRE",hc='<!DOCTYPE foo PUBLIC "foo bar">\n<foo />',ic="\t",jc="\n",kc="[^<]+|<!--[\\s\\S]*?--\>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>|</?[a-zA-Z][^>]*>|<",lc="nocode",mc=' $1="$2$3$4"',S="pln",nc="string",T="lang-",oc="src",U="str",pc="'\"",qc="'\"`",rc="\"'",V="com",sc="lang-regex",tc="(/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/)",uc="kwd",vc="^(?:",wc=")\\b",xc=" \r\n\t\u00a0",yc="lit",zc="typ",Ac="0123456789",Y="pun",Bc="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try alignof align_union asm axiom bool concept concept_map const_cast constexpr decltype dynamic_cast explicit export friend inline late_check mutable namespace nullptr reinterpret_cast static_assert static_cast template typeid typename typeof using virtual wchar_t where break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient as base by checked decimal delegate descending event fixed foreach from group implicit in interface internal into is lock object out override orderby params partial readonly ref sbyte sealed stackalloc string select uint ulong unchecked unsafe ushort var break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try debugger eval export function get null set undefined var with Infinity NaN caller delete die do dump elsif eval exit foreach for goto if import last local my next no our print package redo require sub undef unless until use wantarray while BEGIN END break continue do else for if return while and as assert class def del elif except exec finally from global import in is lambda nonlocal not or pass print raise try with yield False True None break continue do else for if return while alias and begin case class def defined elsif end ensure false in module next nil not or redo rescue retry self super then true undef unless until when yield BEGIN END break continue do else for if return while case done elif esac eval fi function in local set then until ",
-Cc="</span>",Dc='<span class="',Ec='">',Fc="$1&nbsp;",Gc="&nbsp;<br />",Hc="<br />",Ic="console",Jc="cannot override language handler %s",Kc="default-markup",Lc="default-code",Mc="dec",Z="lang-js",$="lang-css",Nc="lang-in.tag",Oc="htm",Pc="html",Qc="mxml",Rc="xhtml",Sc="xml",Tc="xsl",Uc=" \t\r\n",Vc="atv",Wc="tag",Xc="atn",Yc="lang-uq.val",Zc="in.tag",$c="uq.val",ad="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try alignof align_union asm axiom bool concept concept_map const_cast constexpr decltype dynamic_cast explicit export friend inline late_check mutable namespace nullptr reinterpret_cast static_assert static_cast template typeid typename typeof using virtual wchar_t where ",
-bd="c",cd="cc",dd="cpp",ed="cxx",fd="cyc",gd="m",hd="null true false",id="json",jd="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient as base by checked decimal delegate descending event fixed foreach from group implicit in interface internal into is lock object out override orderby params partial readonly ref sbyte sealed stackalloc string select uint ulong unchecked unsafe ushort var ",
-kd="cs",ld="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient ",md="java",nd="break continue do else for if return while case done elif esac eval fi function in local set then until ",
-od="bsh",pd="csh",qd="sh",rd="break continue do else for if return while and as assert class def del elif except exec finally from global import in is lambda nonlocal not or pass print raise try with yield False True None ",sd="cv",td="py",ud="caller delete die do dump elsif eval exit foreach for goto if import last local my next no our print package redo require sub undef unless until use wantarray while BEGIN END ",vd="perl",wd="pl",xd="pm",yd="break continue do else for if return while alias and begin case class def defined elsif end ensure false in module next nil not or redo rescue retry self super then true undef unless until when yield BEGIN END ",
-zd="rb",Ad="break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try debugger eval export function get null set undefined var with Infinity NaN ",Bd="js",Cd="regex",Dd="pre",Ed="code",Fd="xmp",Gd="prettyprint",Hd="class",Id="br",Jd="\r";
-(function(){var N=function(){for(var a=[aa,ba,ca,F,da,ea,G,fa,ja,ka,H,la,ma,na,oa,pa,qa,ra,sa,ta,ua,va,I,wa,xa,ya,za,Aa,Ba,J,Ca,Da,Ea,Fa,Ga,Ha,Ia,L,M,Ta,Ua,Va,Wa,O,Xa,Ya,Za,$a,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb],b=mb,c=0;c<a.length;++c)b+=O+a[c].replace(/([^=<>:&a-z])/g,nb);b+=ob;return b}(),Ja=/&/g,Ka=/</g,La=/>/g,Kd=/\"/g;function Ld(a){return a.replace(Ja,pb).replace(Ka,qb).replace(La,rb).replace(Kd,sb)}function ga(a){return a.replace(Ja,pb).replace(Ka,qb).replace(La,rb)}var Md=/&lt;/g,Nd=/&gt;/g,
-Od=/&apos;/g,Pd=/&quot;/g,Qd=/&amp;/g,Rd=/&nbsp;/g;function Sd(a){var b=a.indexOf(G);if(b<0)return a;for(--b;(b=a.indexOf(tb,b+1))>=0;){var c=a.indexOf(va,b);if(c>=0){var d=a.substring(b+3,c),g=10;if(d&&d.charAt(0)===ub){d=d.substring(1);g=16}var i=parseInt(d,g);isNaN(i)||(a=a.substring(0,b)+String.fromCharCode(i)+a.substring(c+1))}}return a.replace(Md,I).replace(Nd,J).replace(Od,vb).replace(Pd,wb).replace(Qd,G).replace(Rd,xb)}function Ma(a){return yb===a.tagName}function W(a,b){switch(a.nodeType){case 1:var c=
-a.tagName.toLowerCase();b.push(I,c);for(var d=0;d<a.attributes.length;++d){var g=a.attributes[d];if(g.specified){b.push(xb);W(g,b)}}b.push(J);for(var i=a.firstChild;i;i=i.nextSibling)W(i,b);if(a.firstChild||!/^(?:br|link|img)$/.test(c))b.push(zb,c,J);break;case 2:b.push(a.name.toLowerCase(),Ab,Ld(a.value),wb);break;case 3:case 4:b.push(ga(a.nodeValue));break}}function Na(a){for(var b=0,c=z,d=z,g=0,i=a.length;g<i;++g){var m=a[g];if(m.ignoreCase)d=o;else if(/[a-z]/i.test(m.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,
-P))){c=o;d=z;break}}function l(j){if(j.charAt(0)!==Q)return j.charCodeAt(0);switch(j.charAt(1)){case Bb:return 8;case Cb:return 9;case Db:return 10;case Eb:return 11;case Fb:return 12;case Gb:return 13;case Hb:case ub:return parseInt(j.substring(2),16)||j.charCodeAt(1);case Ib:case Jb:case Kb:case Lb:case Mb:case Nb:case Ob:case Pb:return parseInt(j.substring(1),8);default:return j.charCodeAt(1)}}function n(j){if(j<32)return(j<16?Qb:Rb)+j.toString(16);var f=String.fromCharCode(j);if(f===Q||f===Sb||
-f===L||f===Tb)f=Q+f;return f}function q(j){for(var f=j.substring(1,j.length-1).match(new RegExp(Ub,R)),s=[],k=[],h=f[0]===M,e=h?1:0,p=f.length;e<p;++e){var t=f[e];switch(t){case Vb:case Wb:case Xb:case Yb:case Zb:case $b:case ac:case bc:s.push(t);continue}var u=l(t),x;if(e+2<p&&Sb===f[e+1]){x=l(f[e+2]);e+=2}else x=u;k.push([u,x]);if(!(x<65||u>122)){x<65||u>90||k.push([Math.max(65,u)|32,Math.min(x,90)|32]);x<97||u>122||k.push([Math.max(97,u)&-33,Math.min(x,122)&-33])}}k.sort(function(Oa,Pa){return Oa[0]-
-Pa[0]||Pa[1]-Oa[1]});var B=[],E=[NaN,NaN];for(e=0;e<k.length;++e){var A=k[e];if(A[0]<=E[1]+1)E[1]=Math.max(E[1],A[1]);else B.push(E=A)}var D=[L];h&&D.push(M);D.push.apply(D,s);for(e=0;e<B.length;++e){A=B[e];D.push(n(A[0]));if(A[1]>A[0]){A[1]+1>A[0]&&D.push(Sb);D.push(n(A[1]))}}D.push(Tb);return D.join(P)}function v(j){var f=j.source.match(new RegExp(cc,R)),s=f.length,k=[],h,e=0;for(h=0;e<s;++e){var p=f[e];if(p===H)++h;else if(Q===p.charAt(0)){var t=+p.substring(1);if(t&&t<=h)k[t]=-1}}for(e=1;e<k.length;++e)if(-1===
-k[e])k[e]=++b;for(h=e=0;e<s;++e){p=f[e];if(p===H){++h;if(k[h]===undefined)f[e]=dc}else if(Q===p.charAt(0))if((t=+p.substring(1))&&t<=h)f[e]=Q+k[h]}for(h=e=0;e<s;++e)if(M===f[e]&&M!==f[e+1])f[e]=P;if(j.ignoreCase&&c)for(e=0;e<s;++e){p=f[e];var u=p.charAt(0);if(p.length>=2&&u===L)f[e]=q(p);else if(u!==Q)f[e]=p.replace(/[a-zA-Z]/g,function(x){var B=x.charCodeAt(0);return L+String.fromCharCode(B&-33,B|32)+Tb})}return f.join(P)}var w=[];g=0;for(i=a.length;g<i;++g){m=a[g];if(m.global||m.multiline)throw new Error(P+
-m);w.push(dc+v(m)+ec)}return new RegExp(w.join(O),d?fc:R)}var ha=r;function Td(a){if(r===ha){var b=document.createElement(gc);b.appendChild(document.createTextNode(hc));ha=!/</.test(b.innerHTML)}if(ha){var c=a.innerHTML;if(Ma(a))c=ga(c);return c}for(var d=[],g=a.firstChild;g;g=g.nextSibling)W(g,d);return d.join(P)}function Ud(a){var b=0;return function(c){for(var d=r,g=0,i=0,m=c.length;i<m;++i){var l=c.charAt(i);switch(l){case ic:d||(d=[]);d.push(c.substring(g,i));var n=a-b%a;for(b+=n;n>=0;n-="                ".length)d.push("                ".substring(0,
-n));g=i+1;break;case jc:b=0;break;default:++b}}if(!d)return c;d.push(c.substring(g));return d.join(P)}}var Vd=new RegExp(kc,R),Wd=/^<\!--/,Xd=/^<\[CDATA\[/,Yd=/^<br\b/i,Qa=/^<(\/?)([a-zA-Z]+)/;function Zd(a){var b=a.match(Vd),c=[],d=0,g=[];if(b)for(var i=0,m=b.length;i<m;++i){var l=b[i];if(l.length>1&&l.charAt(0)===I){if(!Wd.test(l))if(Xd.test(l)){c.push(l.substring(9,l.length-3));d+=l.length-12}else if(Yd.test(l)){c.push(jc);++d}else if(l.indexOf(lc)>=0&&$d(l)){var n=l.match(Qa)[2],q=1,v;v=i+1;a:for(;v<
-m;++v){var w=b[v].match(Qa);if(w&&w[2]===n)if(w[1]===ra){if(--q===0)break a}else++q}if(v<m){g.push(d,b.slice(i,v+1).join(P));i=v}else g.push(d,l)}else g.push(d,l)}else{var j=Sd(l);c.push(j);d+=j.length}}return{source:c.join(P),tags:g}}function $d(a){return!!a.replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,mc).match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/)}function ia(a,b,c,d){if(b){var g={source:b,b:a};c(g);d.push.apply(d,g.c)}}function K(a,b){var c={},d;(function(){for(var m=a.concat(b),
-l=[],n={},q=0,v=m.length;q<v;++q){var w=m[q],j=w[3];if(j)for(var f=j.length;--f>=0;)c[j.charAt(f)]=w;var s=w[1],k=P+s;if(!n.hasOwnProperty(k)){l.push(s);n[k]=r}}l.push(/[\0-\uffff]/);d=Na(l)})();var g=b.length,i=function(m){for(var l=m.source,n=m.b,q=[n,S],v=0,w=l.match(d)||[],j={},f=0,s=w.length;f<s;++f){var k=w[f],h=j[k],e,p;if(typeof h===nc)p=z;else{var t=c[k.charAt(0)];if(t){e=k.match(t[1]);h=t[0]}else{for(var u=0;u<g;++u){t=b[u];if(e=k.match(t[1])){h=t[0];break}}e||(h=S)}if((p=h.length>=5&&T===
-h.substring(0,5))&&!(e&&e[1])){p=z;h=oc}p||(j[k]=h)}var x=v;v+=k.length;if(p){var B=e[1],E=k.indexOf(B),A=E+B.length,D=h.substring(5);ia(n+x,k.substring(0,E),i,q);ia(n+x+E,B,Ra(D,B),q);ia(n+x+A,k.substring(A),i,q)}else q.push(n+x,h)}m.c=q};return i}function C(a){var b=[],c=[];if(a.tripleQuotedStrings)b.push([U,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,r,pc]);
-else a.multiLineStrings?b.push([U,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,r,qc]):b.push([U,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,r,rc]);if(a.hashComments)a.cStyleComments?b.push([V,/^#(?:[^\r\n\/]|\/(?!\*)|\/\*[^\r\n]*?\*\/)*/,r,F]):b.push([V,/^#[^\r\n]*/,r,F]);if(a.cStyleComments){c.push([V,/^\/\/[^\r\n]*/,r]);c.push([V,/^\/\*[\s\S]*?(?:\*\/|$)/,r])}a.regexLiterals&&c.push([sc,new RegExp(M+N+tc)]);var d=
-a.keywords.replace(/^\s+|\s+$/g,P);d.length&&c.push([uc,new RegExp(vc+d.replace(/\s+/g,O)+wc),r]);b.push([S,/^\s+/,r,xc]);c.push([yc,/^@[a-z_$][a-z_$@0-9]*/i,r,Ia],[zc,/^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/,r],[S,/^[a-z_$][a-z_$@0-9]*/i,r],[yc,/^(?:0x[a-f0-9]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+\-]?\d+)?)[a-z]*/i,r,Ac],[Y,/^.[^\s\w\.$@\'\"\`\/\#]*/,r]);return K(b,c)}var ae=C({keywords:Bc,hashComments:o,cStyleComments:o,multiLineStrings:o,regexLiterals:o});function be(a){var b=a.source,c=a.f,d=a.c,
-g=[],i=0,m=r,l=r,n=0,q=0,v=Ud(window.PR_TAB_WIDTH),w=/([\r\n ]) /g,j=/(^| ) /gm,f=/\r\n?|\n/g,s=/[ \r\n]$/,k=o;function h(p){if(p>i){if(m&&m!==l){g.push(Cc);m=r}if(!m&&l){m=l;g.push(Dc,m,Ec)}var t=ga(v(b.substring(i,p))).replace(k?j:w,Fc);k=s.test(t);var u=window._pr_isIE6()?Gc:Hc;g.push(t.replace(f,u));i=p}}for(;1;){var e;if(e=n<c.length?q<d.length?c[n]<=d[q]:o:z){h(c[n]);if(m){g.push(Cc);m=r}g.push(c[n+1]);n+=2}else if(q<d.length){h(d[q]);l=d[q+1];q+=2}else break}h(b.length);m&&g.push(Cc);a.a=g.join(P)}
-var X={};function y(a,b){for(var c=b.length;--c>=0;){var d=b[c];if(X.hasOwnProperty(d))Ic in window&&console.i(Jc,d);else X[d]=a}}function Ra(a,b){a&&X.hasOwnProperty(a)||(a=/^\s*</.test(b)?Kc:Lc);return X[a]}y(ae,[Lc]);y(K([],[[S,/^[^<?]+/],[Mc,/^<!\w[^>]*(?:>|$)/],[V,/^<\!--[\s\S]*?(?:-\->|$)/],[T,/^<\?([\s\S]+?)(?:\?>|$)/],[T,/^<%([\s\S]+?)(?:%>|$)/],[Y,/^(?:<[%?]|[%?]>)/],[T,/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],[Z,/^<script\b[^>]*>([\s\S]+?)<\/script\b[^>]*>/i],[$,/^<style\b[^>]*>([\s\S]+?)<\/style\b[^>]*>/i],
-[Nc,/^(<\/?[a-z][^<>]*>)/i]]),[Kc,Oc,Pc,Qc,Rc,Sc,Tc]);y(K([[S,/^[\s]+/,r,Uc],[Vc,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,r,rc]],[[Wc,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[Xc,/^(?!style\b|on)[a-z](?:[\w:-]*\w)?/],[Yc,/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[Y,/^[=<>\/]+/],[Z,/^on\w+\s*=\s*\"([^\"]+)\"/i],[Z,/^on\w+\s*=\s*\'([^\']+)\'/i],[Z,/^on\w+\s*=\s*([^\"\'>\s]+)/i],[$,/^sty\w+\s*=\s*\"([^\"]+)\"/i],[$,/^sty\w+\s*=\s*\'([^\']+)\'/i],[$,/^sty\w+\s*=\s*([^\"\'>\s]+)/i]]),[Zc]);y(K([],[[Vc,/^[\s\S]+/]]),
-[$c]);y(C({keywords:ad,hashComments:o,cStyleComments:o}),[bd,cd,dd,ed,fd,gd]);y(C({keywords:hd}),[id]);y(C({keywords:jd,hashComments:o,cStyleComments:o}),[kd]);y(C({keywords:ld,cStyleComments:o}),[md]);y(C({keywords:nd,hashComments:o,multiLineStrings:o}),[od,pd,qd]);y(C({keywords:rd,hashComments:o,multiLineStrings:o,tripleQuotedStrings:o}),[sd,td]);y(C({keywords:ud,hashComments:o,multiLineStrings:o,regexLiterals:o}),[vd,wd,xd]);y(C({keywords:yd,hashComments:o,multiLineStrings:o,regexLiterals:o}),
-[zd]);y(C({keywords:Ad,cStyleComments:o,regexLiterals:o}),[Bd]);y(K([],[[U,/^[\s\S]+/]]),[Cd]);function Sa(a){var b=a.e,c=a.d;a.a=b;try{var d=Zd(b),g=d.source;a.source=g;a.b=0;a.f=d.tags;Ra(c,g)(a);be(a)}catch(i){if(Ic in window){console.log(i);console.h()}}}function ce(a,b){var c={e:a,d:b};Sa(c);return c.a}function de(a){for(var b=window._pr_isIE6(),c=[document.getElementsByTagName(Dd),document.getElementsByTagName(Ed),document.getElementsByTagName(Fd)],d=[],g=0;g<c.length;++g)for(var i=0,m=c[g].length;i<
-m;++i)d.push(c[g][i]);c=r;var l=Date;l.now||(l={now:function(){return(new Date).getTime()}});var n=0,q;function v(){for(var j=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;n<d.length&&l.now()<j;n++){var f=d[n];if(f.className&&f.className.indexOf(Gd)>=0){var s=f.className.match(/\blang-(\w+)\b/);if(s)s=s[1];for(var k=z,h=f.parentNode;h;h=h.parentNode)if((h.tagName===Dd||h.tagName===Ed||h.tagName===Fd)&&h.className&&h.className.indexOf(Gd)>=0){k=o;break}if(!k){var e=Td(f);e=e.replace(/(?:\r\n?|\n)$/,
-P);q={e:e,d:s,g:f};Sa(q);w()}}}if(n<d.length)setTimeout(v,250);else a&&a()}function w(){var j=q.a;if(j){var f=q.g;if(Ma(f)){for(var s=document.createElement(gc),k=0;k<f.attributes.length;++k){var h=f.attributes[k];if(h.specified){var e=h.name.toLowerCase();if(e===Hd)s.className=h.value;else s.setAttribute(h.name,h.value)}}s.innerHTML=j;f.parentNode.replaceChild(s,f);f=s}else f.innerHTML=j;if(b&&f.tagName===gc)for(var p=f.getElementsByTagName(Id),t=p.length;--t>=0;){var u=p[t];u.parentNode.replaceChild(document.createTextNode(Jd),
-u)}}}v()}window.PR_normalizedHtml=W;window.prettyPrintOne=ce;window.prettyPrint=de;window.PR={combinePrefixPatterns:Na,createSimpleLexer:K,registerLangHandler:y,sourceDecorator:C,PR_ATTRIB_NAME:Xc,PR_ATTRIB_VALUE:Vc,PR_COMMENT:V,PR_DECLARATION:Mc,PR_KEYWORD:uc,PR_LITERAL:yc,PR_NOCODE:lc,PR_PLAIN:S,PR_PUNCTUATION:Y,PR_SOURCE:oc,PR_STRING:U,PR_TAG:Wc,PR_TYPE:zc}})();
-})()
diff --git a/latest-javadoc/assets/search_autocomplete.js b/latest-javadoc/assets/search_autocomplete.js
deleted file mode 100755
index 42a24e4..0000000
--- a/latest-javadoc/assets/search_autocomplete.js
+++ /dev/null
@@ -1,274 +0,0 @@
-var gSelectedIndex = -1;
-var gSelectedID = -1;
-var gMatches = new Array();
-var gLastText = "";
-var ROW_COUNT = 20;
-var gInitialized = false;
-var DEFAULT_TEXT = "search developer docs";
-var HAS_SEARCH_PAGE = false;
-
-function set_row_selected(row, selected)
-{
-    var c1 = row.cells[0];
-  //  var c2 = row.cells[1];
-    if (selected) {
-        c1.className = "jd-autocomplete jd-selected";
-  //      c2.className = "jd-autocomplete jd-selected jd-linktype";
-    } else {
-        c1.className = "jd-autocomplete";
-  //      c2.className = "jd-autocomplete jd-linktype";
-    }
-}
-
-function set_row_values(toroot, row, match)
-{
-    var link = row.cells[0].childNodes[0];
-    link.innerHTML = match.__hilabel || match.label;
-    link.href = toroot + match.link
-  //  row.cells[1].innerHTML = match.type;
-}
-
-function sync_selection_table(toroot)
-{
-    var filtered = document.getElementById("search_filtered");
-    var r; //TR DOM object
-    var i; //TR iterator
-    gSelectedID = -1;
-
-    filtered.onmouseover = function() { 
-        if(gSelectedIndex >= 0) {
-          set_row_selected(this.rows[gSelectedIndex], false);
-          gSelectedIndex = -1;
-        }
-    }
-
-    //initialize the table; draw it for the first time (but not visible).
-    if (!gInitialized) {
-        for (i=0; i<ROW_COUNT; i++) {
-            var r = filtered.insertRow(-1);
-            var c1 = r.insertCell(-1);
-        //    var c2 = r.insertCell(-1);
-            c1.className = "jd-autocomplete";
-         //   c2.className = "jd-autocomplete jd-linktype";
-            var link = document.createElement("a");
-            c1.onmousedown = function() {
-                window.location = this.firstChild.getAttribute("href");
-            }
-            c1.onmouseover = function() {
-                this.className = this.className + " jd-selected";
-            }
-            c1.onmouseout = function() {
-                this.className = "jd-autocomplete";
-            }
-            c1.appendChild(link);
-        }
-  /*      var r = filtered.insertRow(-1);
-        var c1 = r.insertCell(-1);
-        c1.className = "jd-autocomplete jd-linktype";
-        c1.colSpan = 2; */
-        gInitialized = true;
-    }
-
-    //if we have results, make the table visible and initialize result info
-    if (gMatches.length > 0) {
-        document.getElementById("search_filtered_div").className = "showing";
-        var N = gMatches.length < ROW_COUNT ? gMatches.length : ROW_COUNT;
-        for (i=0; i<N; i++) {
-            r = filtered.rows[i];
-            r.className = "show-row";
-            set_row_values(toroot, r, gMatches[i]);
-            set_row_selected(r, i == gSelectedIndex);
-            if (i == gSelectedIndex) {
-                gSelectedID = gMatches[i].id;
-            }
-        }
-        //start hiding rows that are no longer matches
-        for (; i<ROW_COUNT; i++) {
-            r = filtered.rows[i];
-            r.className = "no-display";
-        }
-        //if there are more results we're not showing, so say so.
-/*      if (gMatches.length > ROW_COUNT) {
-            r = filtered.rows[ROW_COUNT];
-            r.className = "show-row";
-            c1 = r.cells[0];
-            c1.innerHTML = "plus " + (gMatches.length-ROW_COUNT) + " more"; 
-        } else {
-            filtered.rows[ROW_COUNT].className = "hide-row";
-        }*/
-    //if we have no results, hide the table
-    } else {
-        document.getElementById("search_filtered_div").className = "no-display";
-    }
-}
-
-function search_changed(e, kd, toroot)
-{
-    var search = document.getElementById("search_autocomplete");
-    var text = search.value.replace(/(^ +)|( +$)/g, '');
-
-    // 13 = enter
-    if (e.keyCode == 13) {
-        document.getElementById("search_filtered_div").className = "no-display";
-        if (kd && gSelectedIndex >= 0) {
-            window.location = toroot + gMatches[gSelectedIndex].link;
-            return false;
-        } else if (gSelectedIndex < 0) {
-            if (HAS_SEARCH_PAGE) {
-                return true;
-            } else {
-                sync_selection_table(toroot);
-                return false;
-            }
-        }
-    }
-    // 38 -- arrow up
-    else if (kd && (e.keyCode == 38)) {
-        if (gSelectedIndex >= 0) {
-            gSelectedIndex--;
-        }
-        sync_selection_table(toroot);
-        return false;
-    }
-    // 40 -- arrow down
-    else if (kd && (e.keyCode == 40)) {
-        if (gSelectedIndex < gMatches.length-1
-                        && gSelectedIndex < ROW_COUNT-1) {
-            gSelectedIndex++;
-        }
-        sync_selection_table(toroot);
-        return false;
-    }
-    else if (!kd) {
-        gMatches = new Array();
-        matchedCount = 0;
-        gSelectedIndex = -1;
-        for (var i=0; i<DATA.length; i++) {
-            var s = DATA[i];
-            if (text.length != 0 &&
-                  s.label.toLowerCase().indexOf(text.toLowerCase()) != -1) {
-                gMatches[matchedCount] = s;
-                matchedCount++;
-            }
-        }
-        rank_autocomplete_results(text);
-        for (var i=0; i<gMatches.length; i++) {
-            var s = gMatches[i];
-            if (gSelectedID == s.id) {
-                gSelectedIndex = i;
-            }
-        }
-        highlight_autocomplete_result_labels(text);
-        sync_selection_table(toroot);
-        return true; // allow the event to bubble up to the search api
-    }
-}
-
-function rank_autocomplete_results(query) {
-    query = query || '';
-    if (!gMatches || !gMatches.length)
-      return;
-
-    // helper function that gets the last occurence index of the given regex
-    // in the given string, or -1 if not found
-    var _lastSearch = function(s, re) {
-      if (s == '')
-        return -1;
-      var l = -1;
-      var tmp;
-      while ((tmp = s.search(re)) >= 0) {
-        if (l < 0) l = 0;
-        l += tmp;
-        s = s.substr(tmp + 1);
-      }
-      return l;
-    };
-
-    // helper function that counts the occurrences of a given character in
-    // a given string
-    var _countChar = function(s, c) {
-      var n = 0;
-      for (var i=0; i<s.length; i++)
-        if (s.charAt(i) == c) ++n;
-      return n;
-    };
-
-    var queryLower = query.toLowerCase();
-    var queryAlnum = (queryLower.match(/\w+/) || [''])[0];
-    var partPrefixAlnumRE = new RegExp('\\b' + queryAlnum);
-    var partExactAlnumRE = new RegExp('\\b' + queryAlnum + '\\b');
-
-    var _resultScoreFn = function(result) {
-        // scores are calculated based on exact and prefix matches,
-        // and then number of path separators (dots) from the last
-        // match (i.e. favoring classes and deep package names)
-        var score = 1.0;
-        var labelLower = result.label.toLowerCase();
-        var t;
-        t = _lastSearch(labelLower, partExactAlnumRE);
-        if (t >= 0) {
-            // exact part match
-            var partsAfter = _countChar(labelLower.substr(t + 1), '.');
-            score *= 200 / (partsAfter + 1);
-        } else {
-            t = _lastSearch(labelLower, partPrefixAlnumRE);
-            if (t >= 0) {
-                // part prefix match
-                var partsAfter = _countChar(labelLower.substr(t + 1), '.');
-                score *= 20 / (partsAfter + 1);
-            }
-        }
-
-        return score;
-    };
-
-    for (var i=0; i<gMatches.length; i++) {
-        gMatches[i].__resultScore = _resultScoreFn(gMatches[i]);
-    }
-
-    gMatches.sort(function(a,b){
-        var n = b.__resultScore - a.__resultScore;
-        if (n == 0) // lexicographical sort if scores are the same
-            n = (a.label < b.label) ? -1 : 1;
-        return n;
-    });
-}
-
-function highlight_autocomplete_result_labels(query) {
-    query = query || '';
-    if (!gMatches || !gMatches.length)
-      return;
-
-    var queryLower = query.toLowerCase();
-    var queryAlnumDot = (queryLower.match(/[\w\.]+/) || [''])[0];
-    var queryRE = new RegExp(
-        '(' + queryAlnumDot.replace(/\./g, '\\.') + ')', 'ig');
-    for (var i=0; i<gMatches.length; i++) {
-        gMatches[i].__hilabel = gMatches[i].label.replace(
-            queryRE, '<b>$1</b>');
-    }
-}
-
-function search_focus_changed(obj, focused)
-{
-    if (focused) {
-        if(obj.value == DEFAULT_TEXT){
-            obj.value = "";
-            obj.style.color="#000000";
-        }
-    } else {
-        if(obj.value == ""){
-          obj.value = DEFAULT_TEXT;
-          obj.style.color="#aaaaaa";
-        }
-        document.getElementById("search_filtered_div").className = "no-display";
-    }
-}
-
-function submit_search() {
-  if (HAS_SEARCH_PAGE) {
-    var query = document.getElementById('search_autocomplete').value;
-    document.location = toRoot + 'search.html#q=' + query + '&t=0';
-  }
-  return false;
-}
diff --git a/latest-javadoc/assets/style.css b/latest-javadoc/assets/style.css
deleted file mode 100755
index 5ad1118..0000000
--- a/latest-javadoc/assets/style.css
+++ /dev/null
@@ -1,316 +0,0 @@
-.jd-toptitle {
-    padding-left: 6px;
-    margin-bottom: 30px;
-    font-size: 160%;
-    font-weight: bold;
-}
-
-div#jd-content table {
-    border: none;
-}
-
-div#jd-content td, div#jd-content th {
-    font-size: small;
-}
-
-div#jd-content table.jd-linktable {
-    margin-top: 3px;
-    border-spacing: 0;
-}
-
-div#jd-content p.jd-deprecated-warning {
-    margin-top: 0;
-    margin-bottom: 10px;
-}
-
-div#jd-content table.jd-linktable th {
-    vertical-align: top;
-    text-align: left;
-    padding-top: 2px;
-    padding-bottom: 2px;
-    padding-left: 7px;
-    padding-right: 7px;
-    border: none;
-    border-top: 1px solid #d2d7d0;
-    background-color: #F7FCF4;
-}
-
-div#jd-content table.jd-linktable td {
-    border: none;
-}
-
-div#jd-content table.jd-linktable td  p {
-    padding: 0;
-    margin: 0;
-    line-height: 110%;
-}
-
-div#jd-content table.jd-linktable .jd-linkcol {
-    vertical-align: top;
-    padding-top: 3px;
-    padding-bottom: 0;
-    padding-left: 7px;
-    padding-right: 7px;
-    border-top: 1px solid #d2d7d0;
-    background-color: #E5F1E0;
-    line-height: 110%;
-}
-
-div#jd-content table.jd-linktable .jd-descrcol {
-    vertical-align: top;
-    padding-top: 3px;
-    padding-bottom: 0;
-    padding-left: 7px;
-    padding-right: 7px;
-    border-top: 1px solid #d2d7d0;
-    background-color: #F7FCF4;
-    line-height: 110%;
-}
-
-div#jd-content table.jd-linktable .jd-descrcol p {
-    padding: 0;
-    margin: 0;
-    line-height: 110%;
-}
-
-div#jd-content table.jd-linktable .jd-valcol {
-    vertical-align: top;
-    padding-top: 3px;
-    padding-bottom: 0;
-    padding-left: 7px;
-    padding-right: 7px;
-    border-top: 1px solid #d2d7d0;
-    background-color: #E5F1E0;
-    line-height: 110%;
-}
-
-div#jd-content table.jd-linktable .jd-commentrow {
-    vertical-align: top;
-    padding-top: 3px;
-    padding-bottom: 4px;
-    padding-left: 7px;
-    padding-right: 7px;
-    background-color: #F7FCF4;
-    line-height: 110%;
-}
-
-div#jd-content div.jd-inheritedlinks {
-    vertical-align: top;
-    margin-top: 9px;
-    padding-left: 7px;
-    padding-right: 7px;
-    background-color: #F7FCF4;
-    line-height: 110%;
-}
-
-div#jd-content .jd-page_title-prefix {
-    padding-top: 2em;
-    margin-bottom: -14pt;
-}
-
-div#jd-content {
-    margin-left: 0;
-    margin-right: 10px;
-    margin-bottom: 0;
-}
-
-div#jd-content h1 {
-    padding-left: 10px;
-}
-
-div#jd-content h2 {
-    padding-left: 10px;
-}
-
-div#jd-content h4 {
-    margin-top: 9px;
-    margin-bottom: 1px;
-}
-
-div#jd-content .jd-descr h5 {
-    margin-bottom: 8px;
-}
-
-div#jd-content .sidebox h3 {
-    margin: 1em 0 0 0;
-}
-
-div#jd-content .jd-letterlist {
-    margin-top: 20px;
-    margin-bottom: 0;
-}
-
-div#jd-content .jd-lettertable {
-    margin-top: 15px;
-    margin-right: 10px;
-}
-div#jd-content .jd-letterentries {
-	list-style: none;
-	margin-left: 0;
-}
-div#jd-content .jd-letterentrycomments {
-    color: gray;
-}
-
-div#jd-content table.jd-inheritance-table {
-    margin-top: 0;
-    margin-left: 10px;
-    margin-right: 10px;
-    border-spacing: 0;
-}
-
-div#jd-content table.jd-inheritance-table td {
-    border: none;
-    margin: 0;
-    padding: 0;
-    background-color: white;
-}
-
-div#jd-content table.jd-inheritance-table .jd-inheritance-space {
-    width: 10px;
-}
-
-div#jd-content table.jd-inheritance-table .jd-inheritance-interface-cell {
-    padding-left: 17px;
-}
-
-div#jd-content h4.jd-details-title {
-    margin: 0;
-    background-color: #E5F1E0;
-    padding: 2px;
-    padding-left: 10px;
-    padding-right: 10px;
-    margin-top: 15px;
-}
-
-div#jd-content .jd-details {
-    margin-top: 0;
-    margin-left: -10px;
-}
-
-div#jd-content .jd-details-descr {
-    line-height: 120%;
-    padding-left: 10px;
-    padding-top: 10px;
-    padding-right: 20px;
-}
-
-div#jd-content .jd-descr h5,
-div#jd-content .jd-details h5 {
-    font-style: normal;
-    text-decoration: none;
-    font-size: 120%;
-}
-
-div#jd-content .jd-more {
-}
-
-div#jd-content .jd-descr {
-    padding-top: 0;
-}
-
-div#jd-content .jd-tagdata {
-    margin-top: 6px;
-    margin-bottom: 6px;
-}
-
-div#jd-content .jd-tagtitle {
-    margin-top: 0px;
-}
-
-div#jd-content .jd-tagtable {
-    margin-top: 10px;
-    border-spacing: 0;
-}
-
-div#jd-content .jd-tagtable th {
-    background: white;
-    padding-left: 10px;
-    padding-right: 10px;
-line-height: 120%;
-}
-
-div#jd-content .jd-tagtable th,
-div#jd-content .jd-tagtable td {
-line-height: 120%;
-    border: none;
-    margin: 0;
-    text-align: left;
-    padding-top: 0px;
-    padding-bottom: 5px;
-}
-
-div#jd-content .Code,code,pre,samp,var {
-    color: #004000;
-}
-
-div#jd-content pre.Code {
-    padding-left: 20px;
-}
-
-/* XXX I would really like to apply font-size: 9pt only if var/samp
-   is NOT inside of a .jd-descr div. */
-div#jd-content .jd-descr code,var,samp {
-    padding-left: 0px;
-}
-
-#search_autocomplete {
-    font-size: 80%;
-}
-
-div#jd-searchbox table.jd-autocomplete-table-hidden {
-    display: none;
-}
-
-div#jd-searchbox table.jd-autocomplete-table-showing {
-    z-index: 10;
-    border: 1px solid #3366cc;
-    position: relative;
-    top: -14px;
-    left: 5px;
-    background-color: white;
-}
-
-div#jd-searchbox td.jd-autocomplete {
-    font-family: Arial, sans-serif;
-    padding-left: 6px;
-    padding-right: 6px;
-    padding-top: 1px;
-    padding-bottom: 1px;
-    font-size: 80%;
-    border: none;
-    margin: 0;
-    line-height: 105%;
-}
-
-div#jd-searchbox td.jd-selected {
-    background-color: #E5F1E0;
-}
-
-div#jd-searchbox td.jd-linktype {
-    color: #999999;
-}
-
-div#jd-content .jd-expando-trigger {
-    margin-left: -8px;
-    margin-right: 0px;
-    border: none;
-}
-
-div#jd-build-id {
-    color: #666;
-    width: 100%;
-    text-align: right;
-    padding-right: 5px;
-    padding-bottom: 3px;
-}
-
-@media print {
-    #jd-searchbox, .jd-nav {
-        display: none;
-    }
-    div#jd-content {
-        margin-top: 0px;
-    }
-}
-
diff --git a/latest-javadoc/assets/triangle-none.gif b/latest-javadoc/assets/triangle-none.gif
deleted file mode 100755
index 0c7b469..0000000
--- a/latest-javadoc/assets/triangle-none.gif
+++ /dev/null
Binary files differ
diff --git a/latest-javadoc/classes.html b/latest-javadoc/classes.html
deleted file mode 100755
index 37c5d65..0000000
--- a/latest-javadoc/classes.html
+++ /dev/null
@@ -1,1473 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="./favicon.ico" />
-<title>
-
-  Class Index
-
-
-| Guice
-
-</title>
-<link href="./../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="./../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="./../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("./", "./../javadoc/assets/");
-</script>
-<script src="./../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, './')"
-                      onkeyup="return search_changed(event, false, './')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="./packages.html"  >Package Index</a> | 
-                <a href="./classes.html" class="selected">Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-              <script>
-                /*addLoadEvent(maxPackageHeight);*/
-              </script>
-              <p style="padding:10px">Select a package to view its members</p><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="./packages.html"  >Package Index</a> | 
-            <a href="./classes.html" class="selected">Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("./");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="jd-header">
-<h1>Class Index</h1>
-</div>
-
-<div id="jd-content">
-
-<div class="jd-letterlist">
-    <a href="#letter_A">A</a>
-    <a href="#letter_B">B</a>
-    <a href="#letter_C">C</a>
-    <a href="#letter_D">D</a>
-    <a href="#letter_E">E</a>
-    <a href="#letter_F">F</a>
-    <a href="#letter_G">G</a>
-    <a href="#letter_H">H</a>
-    <a href="#letter_I">I</a>
-    <a href="#letter_J">J</a>
-    <a href="#letter_K">K</a>
-    <a href="#letter_L">L</a>
-    <a href="#letter_M">M</a>
-    <a href="#letter_N">N</a>
-    <a href="#letter_O">O</a>
-    <a href="#letter_P">P</a>
-    <a href="#letter_R">R</a>
-    <a href="#letter_S">S</a>
-    <a href="#letter_T">T</a>
-    <a href="#letter_U">U</a>
-</div>
-
-
-
-<h2 id="letter_A">A</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">Implements <code>and()</code> and <code>or()</code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/AbstractModule.html">AbstractModule</a></td>
-            <td class="jd-descrcol" width="100%">A support class for <code><a href="./com/google/inject/Module.html">Module</a></code>s which reduces repetition and results in
- a more readable configuration.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="./com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></td>
-            <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="./com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></td>
-            <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="./com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></td>
-            <td class="jd-descrcol" width="100%">Arrow symbols that are available from Graphviz.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/assistedinject/Assisted.html">Assisted</a></td>
-            <td class="jd-descrcol" width="100%">Annotates an injected parameter or field whose value comes from an argument to a factory method.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></td>
-            <td class="jd-descrcol" width="100%"><p>
- When used in tandem with <code><a href="./com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>, constructors annotated with 
- <code>@AssistedInject</code> indicate that multiple constructors can be injected, each with different
- parameters.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding for a factory created by FactoryModuleBuilder.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-            <td class="jd-descrcol" width="100%">A visitor for the AssistedInject extension.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></td>
-            <td class="jd-descrcol" width="100%">Details about how a method in an assisted inject factory will be assisted.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_B">B</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Binder.html">Binder</a></td>
-            <td class="jd-descrcol" width="100%">Collects configuration information (primarily <i>bindings</i>) which will be
- used to create an <code><a href="./com/google/inject/Injector.html">Injector</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Binding.html">Binding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A mapping from a key (type and optional annotation) to the strategy for getting instances of the
- type.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/BindingAnnotation.html">BindingAnnotation</a></td>
-            <td class="jd-descrcol" width="100%">Annotates annotations which are used for binding.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</td>
-            <td class="jd-descrcol" width="100%">Interface for an edge that connects an interface to the type or instance
- that is bound to implement it.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="./com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</td>
-            <td class="jd-descrcol" width="100%">Factory interface for <code><a href="./com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code>s.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></td>
-            <td class="jd-descrcol" width="100%">Classification for what kind of binding this edge represents.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></td>
-            <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="./com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></td>
-            <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="./com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> methods to display
- operations on a <code><a href="./com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</td>
-            <td class="jd-descrcol" width="100%">Visits each of the strategies used to scope an injection.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-            <td class="jd-descrcol" width="100%">Visits each of the strategies used to find an instance to satisfy an injection.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_C">C</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">Alternative to the Guice <code><a href="./com/google/inject/Provider.html">Provider</a></code> that throws
- a checked Exception.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></td>
-            <td class="jd-descrcol" width="100%">Annotates methods of a Module to create a <code><a href="./com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code>
- method binding that can throw exceptions.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></td>
-            <td class="jd-descrcol" width="100%">Enum for the "compass point" values used to control where edge
- end points appear on the graph.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td class="jd-descrcol" width="100%">Thrown when a programming error such as a misplaced annotation, illegal binding, or unsupported
- scope is found.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></td>
-            <td class="jd-descrcol" width="100%">Binds to a constant value.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding to the constructor of a concrete clss.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding created from converting a bound instance to a new type.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/CreationException.html">CreationException</a></td>
-            <td class="jd-descrcol" width="100%">Thrown when errors occur while creating a <code><a href="./com/google/inject/Injector.html">Injector</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_D">D</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</td>
-            <td class="jd-descrcol" width="100%">No-op visitor for subclassing.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-            <td class="jd-descrcol" width="100%">No-op visitor for subclassing.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</td>
-            <td class="jd-descrcol" width="100%">No-op visitor for subclassing.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A variable that can be resolved by an injector.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</td>
-            <td class="jd-descrcol" width="100%">Interface for an edge from a class or <code><a href="./com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></code> to the
- interface node that will satisfy the dependency.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="./com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</td>
-            <td class="jd-descrcol" width="100%">Factory interface for <code><a href="./com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>s.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></td>
-            <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="./com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></td>
-            <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="./com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> methods to display
- operations on a <code><a href="./com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></td>
-            <td class="jd-descrcol" width="100%">A request to disable circular proxies.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a></td>
-            <td class="jd-descrcol" width="100%">Utility that helps you introspect dynamic finder methods.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_E">E</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></td>
-            <td class="jd-descrcol" width="100%">Styles for edges.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/Element.html">Element</a></td>
-            <td class="jd-descrcol" width="100%">A core component of a module or injector.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/Elements.html">Elements</a></td>
-            <td class="jd-descrcol" width="100%">Exposes elements of a module so they can be inspected, validated or <code><a href="./com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">rewritten</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</td>
-            <td class="jd-descrcol" width="100%">Visit elements.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Exposed.html">Exposed</a></td>
-            <td class="jd-descrcol" width="100%">Acccompanies a @<code><a href="./com/google/inject/Provides.html">Provides</a></code> method annotation in a
- private module to indicate that the provided binding is exposed.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding to a key exposed from an enclosed private environment.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_F">F</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></td>
-            <td class="jd-descrcol" width="100%">Provides a factory that combines the caller's arguments with injector-supplied values to
- construct objects.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</td>
-            <td class="jd-descrcol" width="100%">
-      <em>
-  This class is deprecated.
-      use <code><a href="./com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code> instead.
-</em>&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/finder/Finder.html">Finder</a></td>
-            <td class="jd-descrcol" width="100%">Marks a method stub as a dynamic finder.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/finder/FirstResult.html">FirstResult</a></td>
-            <td class="jd-descrcol" width="100%">Annotate any dynamic finder method's integer argument with this to pass in
- the index of the first result in the result set you are interested in.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_G">G</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/GrapherModule.html">GrapherModule</a></td>
-            <td class="jd-descrcol" width="100%">Module for the common bindings for <code><a href="./com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="./com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="./com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="./com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="./com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</td>
-            <td class="jd-descrcol" width="100%"><code><a href="./com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> that adds nodes and edges to the graph based on
- the visited <code><a href="./com/google/inject/Binding.html">Binding</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></td>
-            <td class="jd-descrcol" width="100%">Data object to encapsulate the attributes of Graphviz edges that we're
- interested in drawing.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></td>
-            <td class="jd-descrcol" width="100%">Module that provides <code><a href="./com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></code> as the <code><a href="./com/google/inject/grapher/Renderer.html">Renderer</a></code> and
- binds the other Graphviz factories.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></td>
-            <td class="jd-descrcol" width="100%">Data object to encapsulate the attributes of Graphviz nodes that we're
- interested in drawing.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></td>
-            <td class="jd-descrcol" width="100%"><code><a href="./com/google/inject/grapher/Renderer.html">Renderer</a></code> implementation that writes out a Graphviz DOT file of the
- graph.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Guice.html">Guice</a></td>
-            <td class="jd-descrcol" width="100%">The entry point to the Guice framework.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></td>
-            <td class="jd-descrcol" width="100%"><p>
- Apply this filter in web.xml above all other filters (typically), to all requests where you plan
-  to use servlet scopes.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></td>
-            <td class="jd-descrcol" width="100%">As of Guice 2.0 you can still use (your subclasses of) <code>GuiceServletContextListener</code>
- class as a logical place to create and configure your injector.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_H">H</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/HasDependencies.html">HasDependencies</a></td>
-            <td class="jd-descrcol" width="100%">Implemented by <code><a href="./com/google/inject/Binding.html">bindings</a></code>, <code><a href="./com/google/inject/Provider.html">providers</a></code> and instances that expose their dependencies explicitly.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_I">I</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</td>
-            <td class="jd-descrcol" width="100%">Node for classes and instances that have Dependencys and are
- bound to <code><a href="./com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>s.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="./com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</td>
-            <td class="jd-descrcol" width="100%">Factory interface for <code><a href="./com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code>s.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></td>
-            <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="./com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></td>
-            <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="./com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> methods to display
- operations on a <code><a href="./com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/ImplementedBy.html">ImplementedBy</a></td>
-            <td class="jd-descrcol" width="100%">A pointer to the default implementation of a type.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Inject.html">Inject</a></td>
-            <td class="jd-descrcol" width="100%">Annotates members of your implementation class (constructors, methods
- and fields) into which the <code><a href="./com/google/inject/Injector.html">Injector</a></code> should inject values.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</td>
-            <td class="jd-descrcol" width="100%">Listens for injections into instances of type <code>I</code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></td>
-            <td class="jd-descrcol" width="100%">A constructor, field or method that can receive injections.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A request to inject the instance fields and methods of an instance.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Injector.html">Injector</a></td>
-            <td class="jd-descrcol" width="100%">Builds the graphs of objects that make up your application.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></td>
-            <td class="jd-descrcol" width="100%">Root class for graphing an <code><a href="./com/google/inject/Injector.html">Injector</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding to a single instance.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></td>
-            <td class="jd-descrcol" width="100%">A binding to a single instance of a filter.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></td>
-            <td class="jd-descrcol" width="100%">A binding to a single instance of a servlet.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></td>
-            <td class="jd-descrcol" width="100%">Registration of interceptors for matching methods of matching classes.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</td>
-            <td class="jd-descrcol" width="100%">Node for an interface class that has been bound to an implementation class
- or instance.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="./com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</td>
-            <td class="jd-descrcol" width="100%">Factory interface for <code><a href="./com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>s.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></td>
-            <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="./com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></td>
-            <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="./com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> methods to display
- operations on a <code><a href="./com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_J">J</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/jndi/JndiIntegration.html">JndiIntegration</a></td>
-            <td class="jd-descrcol" width="100%">Integrates Guice with JNDI.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></td>
-            <td class="jd-descrcol" width="100%">JPA provider for guice persist.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_K">K</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Key.html">Key</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">Binding key consisting of an injection type and an optional annotation.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_L">L</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="./com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></td>
-            <td class="jd-descrcol" width="100%">A linked binding to a filter.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding to a linked key.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></td>
-            <td class="jd-descrcol" width="100%">A linked binding to a servlet.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_M">M</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/tools/jmx/ManagedBindingMBean.html">ManagedBindingMBean</a></td>
-            <td class="jd-descrcol" width="100%">JMX interface to bindings.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/tools/jmx/Manager.html">Manager</a></td>
-            <td class="jd-descrcol" width="100%">Provides a JMX interface to Guice.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</td>
-            <td class="jd-descrcol" width="100%">An API to bind multiple map entries separately, only to later inject them as
- a complete map.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding for a MapBinder.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">Returns <code>true</code> or <code>false</code> for a given input.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/matcher/Matchers.html">Matchers</a></td>
-            <td class="jd-descrcol" width="100%">Matcher implementations.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/finder/MaxResults.html">MaxResults</a></td>
-            <td class="jd-descrcol" width="100%">Annotate any dynamic finder method's integer argument with this to pass in
- the maximum size of returned result window.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">Injects dependencies into the fields and methods on instances of type <code>T</code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A lookup of the members injector for a type.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/Message.html">Message</a></td>
-            <td class="jd-descrcol" width="100%">An error message and the context in which it occured.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Module.html">Module</a></td>
-            <td class="jd-descrcol" width="100%">A module contributes configuration information, typically interface
- bindings, which will be used to create an <code><a href="./com/google/inject/Injector.html">Injector</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/util/Modules.html">Modules</a></td>
-            <td class="jd-descrcol" width="100%">Static utility methods for creating and working with instances of <code><a href="./com/google/inject/Module.html">Module</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></td>
-            <td class="jd-descrcol" width="100%">See the EDSL example at <code><a href="./com/google/inject/util/Modules.html#override(com.google.inject.Module...)">override()</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">An API to bind multiple values separately, only to later inject them as a
- complete collection.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding for a Multibinder.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-            <td class="jd-descrcol" width="100%">A visitor for the multibinder extension.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_N">N</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/name/Named.html">Named</a></td>
-            <td class="jd-descrcol" width="100%">Annotates named things.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/NameFactory.html">NameFactory</a></td>
-            <td class="jd-descrcol" width="100%">Interface for a service that provides nice Strings that we can
- display in the graph for the types that come up in Bindings.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/name/Names.html">Names</a></td>
-            <td class="jd-descrcol" width="100%">Utility methods for use with <code>@</code><code><a href="./com/google/inject/name/Named.html">Named</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</td>
-            <td class="jd-descrcol" width="100%">Factory for aliasing one node ID to another.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</td>
-            <td class="jd-descrcol" width="100%">Factory for abstract identifiers for elements on the graph.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></td>
-            <td class="jd-descrcol" width="100%">Enum for the shapes that are most interesting for Guice graphing.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></td>
-            <td class="jd-descrcol" width="100%">Styles for nodes.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_O">O</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/OutOfScopeException.html">OutOfScopeException</a></td>
-            <td class="jd-descrcol" width="100%">Thrown from <code><a href="./com/google/inject/Provider.html#get()">get()</a></code> when an attempt is made to access a scoped
- object while the scope in question is not currently active.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_P">P</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/PersistFilter.html">PersistFilter</a></td>
-            <td class="jd-descrcol" width="100%">Apply this filter to enable the HTTP Request unit of work and to have
- guice-persist manage the lifecycle of active units of work.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/PersistModule.html">PersistModule</a></td>
-            <td class="jd-descrcol" width="100%">Install this module to add guice-persist library support for JPA persistence
- providers.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/PersistService.html">PersistService</a></td>
-            <td class="jd-descrcol" width="100%">Persistence provider service.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></td>
-            <td class="jd-descrcol" width="100%">Interface for a service that returns Graphviz port IDs, used for naming the
- rows in ImplementationNode-displaying <code><a href="./com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>s.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></td>
-            <td class="jd-descrcol" width="100%">Implementation of <code><a href="./com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/PrivateBinder.html">PrivateBinder</a></td>
-            <td class="jd-descrcol" width="100%">Returns a binder whose configuration information is hidden from its environment by default.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/PrivateElements.html">PrivateElements</a></td>
-            <td class="jd-descrcol" width="100%">A private collection of elements that are hidden from the enclosing injector or module by
- default.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/PrivateModule.html">PrivateModule</a></td>
-            <td class="jd-descrcol" width="100%">A module whose configuration information is hidden from its environment by default.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/ProvidedBy.html">ProvidedBy</a></td>
-            <td class="jd-descrcol" width="100%">A pointer to the default provider type for a type.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Provider.html">Provider</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">An object capable of providing instances of type <code>T</code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="./com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding to a <code><a href="./com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the provided type.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding to a provider instance.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A binding to a provider key.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A lookup of the provider for a type.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/util/Providers.html">Providers</a></td>
-            <td class="jd-descrcol" width="100%">Static utility methods for creating and working with instances of
- <code><a href="./com/google/inject/Provider.html">Provider</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A provider with dependencies on other injected types.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">A Provider that is part of an extension which supports a custom
- BindingTargetVisitor.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Provides.html">Provides</a></td>
-            <td class="jd-descrcol" width="100%">Annotates methods of a <code><a href="./com/google/inject/Module.html">Module</a></code> to create a provider method binding.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/ProvisionException.html">ProvisionException</a></td>
-            <td class="jd-descrcol" width="100%">Indicates that there was a runtime failure while providing an instance.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_R">R</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/Renderer.html">Renderer</a></td>
-            <td class="jd-descrcol" width="100%">Interface for the service that renders the graph.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/RequestParameters.html">RequestParameters</a></td>
-            <td class="jd-descrcol" width="100%">Apply this to field or parameters of type <code>Map&lt;String, String[]&gt;</code>
- when you want the HTTP request parameter map to be injected.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/RequestScoped.html">RequestScoped</a></td>
-            <td class="jd-descrcol" width="100%">Apply this to implementation classes when you want one instance per request.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></td>
-            <td class="jd-descrcol" width="100%">A request to require explicit bindings.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_S">S</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Scope.html">Scope</a></td>
-            <td class="jd-descrcol" width="100%">A scope is a level of visibility that instances provided by Guice may have.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></td>
-            <td class="jd-descrcol" width="100%">Annotates annotations which are used for scoping.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></td>
-            <td class="jd-descrcol" width="100%">Registration of a scope annotation with the scope that implements it.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></td>
-            <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="./com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Scopes.html">Scopes</a></td>
-            <td class="jd-descrcol" width="100%">Built-in scope implementations.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/ServletModule.html">ServletModule</a></td>
-            <td class="jd-descrcol" width="100%">Configures the servlet scopes and creates bindings for the servlet API
- objects so you can inject the request, response, session, etc.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></td>
-            <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="./com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets()</a></code>&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></td>
-            <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="./com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets()</a></code>&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></td>
-            <td class="jd-descrcol" width="100%">A binding created by <code><a href="./com/google/inject/servlet/ServletModule.html">ServletModule</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-            <td class="jd-descrcol" width="100%">A visitor for the servlet extension.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/ServletScopes.html">ServletScopes</a></td>
-            <td class="jd-descrcol" width="100%">Servlet scopes.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/SessionScoped.html">SessionScoped</a></td>
-            <td class="jd-descrcol" width="100%">Apply this to implementation classes when you want one instance per session.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></td>
-            <td class="jd-descrcol" width="100%">Reasonable implementation for <code><a href="./com/google/inject/grapher/NameFactory.html">NameFactory</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Singleton.html">Singleton</a></td>
-            <td class="jd-descrcol" width="100%">Apply this to implementation classes when you want only one instance
- (per <code><a href="./com/google/inject/Injector.html">Injector</a></code>) to be reused for all injections for that binding.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spring/SpringIntegration.html">SpringIntegration</a></td>
-            <td class="jd-descrcol" width="100%">Integrates Guice with Spring.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/Stage.html">Stage</a></td>
-            <td class="jd-descrcol" width="100%">The stage we're running in.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></td>
-            <td class="jd-descrcol" width="100%">A request to inject the static fields and methods of a type.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></td>
-            <td class="jd-descrcol" width="100%">IdFactory implementation that for String node IDs.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_T">T</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</td>
-            <td class="jd-descrcol" width="100%">
-      <em>
-  This interface is deprecated.
-      use <code><a href="./com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code> instead.
-</em>&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></td>
-            <td class="jd-descrcol" width="100%"><p>Builds a binding for a <code><a href="./com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="./com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</td>
-            <td class="jd-descrcol" width="100%">&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/Toolable.html">Toolable</a></td>
-            <td class="jd-descrcol" width="100%">Instructs an <code><a href="./com/google/inject/Injector.html">Injector</a></code> running in <code><a href="./com/google/inject/Stage.html#TOOL">TOOL</a></code> that a method should be injected.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/Transactional.html">Transactional</a></td>
-            <td class="jd-descrcol" width="100%"><p> Any method or class marked with this annotation will be considered for transactionality.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></td>
-            <td class="jd-descrcol" width="100%"><code><a href="./com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> that returns a Collection of the
- <code><a href="./com/google/inject/Key.html">Key</a></code>s of each Binding's dependencies.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/TypeConverter.html">TypeConverter</a></td>
-            <td class="jd-descrcol" width="100%">Converts constant string values to a different type.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></td>
-            <td class="jd-descrcol" width="100%">Registration of type converters for matching target types.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</td>
-            <td class="jd-descrcol" width="100%">Context of an injectable type encounter.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/TypeListener.html">TypeListener</a></td>
-            <td class="jd-descrcol" width="100%">Listens for Guice to encounter injectable types.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></td>
-            <td class="jd-descrcol" width="100%">Binds types (picked using a Matcher) to an type listener.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_1.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">Represents a generic type <code>T</code>.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/util/Types.html">Types</a></td>
-            <td class="jd-descrcol" width="100%">Static methods for working with types.&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<h2 id="letter_U">U</h2>
-<table class="jd-sumtable">
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/persist/UnitOfWork.html">UnitOfWork</a></td>
-            <td class="jd-descrcol" width="100%">This interface is used to gain manual control over the unit of work.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class=" api apilevel-Guice_2.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</td>
-            <td class="jd-descrcol" width="100%">An untargetted binding.&nbsp;</td>
-        </tr>
-    
-    
-        <tr class="alt-color api apilevel-Guice_3.0" >
-            <td class="jd-linkcol"><a href="./com/google/inject/servlet/UriPatternType.html">UriPatternType</a></td>
-            <td class="jd-descrcol" width="100%">An enumeration of the available URI-pattern matching styles&nbsp;</td>
-        </tr>
-    
-    
-</table>
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/latest-javadoc/com/google/inject/AbstractModule.html b/latest-javadoc/com/google/inject/AbstractModule.html
deleted file mode 100755
index afbfc97..0000000
--- a/latest-javadoc/com/google/inject/AbstractModule.html
+++ /dev/null
@@ -1,2269 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  AbstractModule
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    class
-<h1>AbstractModule</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../com/google/inject/Module.html">Module</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.AbstractModule</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-direct" class="jd-expando-trigger closed"
-          ><img id="subclasses-direct-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Direct Subclasses
-
-  <div id="subclasses-direct">
-      <div id="subclasses-direct-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a>,
-            
-              <a href="../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a>,
-            
-              <a href="../../../com/google/inject/persist/PersistModule.html">PersistModule</a>,
-            
-              <a href="../../../com/google/inject/servlet/ServletModule.html">ServletModule</a>
-            
-          
-      </div>
-      <div id="subclasses-direct-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></td>
-              <td class="jd-descrcol" width="100%">Module for the common bindings for <code><a href="../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></td>
-              <td class="jd-descrcol" width="100%">Module that provides <code><a href="../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></code> as the <code><a href="../../../com/google/inject/grapher/Renderer.html">Renderer</a></code> and
- binds the other Graphviz factories.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/persist/PersistModule.html">PersistModule</a></td>
-              <td class="jd-descrcol" width="100%">Install this module to add guice-persist library support for JPA persistence
- providers.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></td>
-              <td class="jd-descrcol" width="100%">Configures the servlet scopes and creates bindings for the servlet API
- objects so you can inject the request, response, session, etc.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></td>
-              <td class="jd-descrcol" width="100%">JPA provider for guice persist.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A support class for <code><a href="../../../com/google/inject/Module.html">Module</a></code>s which reduces repetition and results in
- a more readable configuration. Simply extend this class, implement <code><a href="../../../com/google/inject/AbstractModule.html#configure()">configure()</a></code>, and call the inherited methods which mirror those found in
- <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>. For example:
-
- <pre>
- public class MyModule extends AbstractModule {
-   protected void configure() {
-     bind(Service.class).to(ServiceImpl.class).in(Singleton.class);
-     bind(CreditCardPaymentService.class);
-     bind(PaymentService.class).to(CreditCardPaymentService.class);
-     bindConstant().annotatedWith(Names.named("port")).to(8080);
-   }
- }
- </pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#AbstractModule()">AbstractModule</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../com/google/inject/Binder.html">Binder</a> builder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#bind(com.google.inject.Key<T>)">bind</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#bind(com.google.inject.TypeLiteral<T>)">bind</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#bind(java.lang.Class<T>)">bind</a></span>(Class&lt;T&gt; clazz)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#bindConstant()">bindConstant</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation, <a href="../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#binder()">binder</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets direct access to the underlying <code>Binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#currentStage()">currentStage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#install(com.google.inject.Module)">install</a></span>(<a href="../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#requestInjection(java.lang.Object)">requestInjection</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection</a></span>(Class...&lt;?&gt; types)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#requireBinding(com.google.inject.Key<?>)">requireBinding</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>key</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/AbstractModule.html#requireBinding(java.lang.Class<?>)">requireBinding</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>type</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Module" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Module-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../com/google/inject/Module.html">com.google.inject.Module</a>
-
-<div id="inherited-methods-com.google.inject.Module">
-  <div id="inherited-methods-com.google.inject.Module-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Module-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Module.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="AbstractModule()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">AbstractModule</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="configure(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-        synchronized 
-        void
-      </span>
-      <span class="sympad">configure</span>
-      <span class="normal">(<a href="../../../com/google/inject/Binder.html">Binder</a> builder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Contributes bindings and other configurations for this module to <code>binder</code>.
-
- <p><strong>Do not invoke this method directly</strong> to install submodules. Instead use
- <code><a href="../../../com/google/inject/Binder.html#install(com.google.inject.Module)">install(Module)</a></code>, which ensures that <code><a href="../../../com/google/inject/Provides.html">provider methods</a></code> are
- discovered.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="addError(com.google.inject.spi.Message)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(<a href="../../../com/google/inject/spi/Message.html">Message</a> message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#addError(com.google.inject.spi.Message)">addError(Message)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="addError(java.lang.String, java.lang.Object...)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(String message, Object... arguments)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#addError(java.lang.String, java.lang.Object...)">addError(String, Object[])</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="addError(java.lang.Throwable)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(Throwable t)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#addError(java.lang.Throwable)">addError(Throwable)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bind(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bind(com.google.inject.Key<T>)">bind(Key)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bind(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bind(com.google.inject.TypeLiteral<T>)">bind(TypeLiteral)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bind(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(Class&lt;T&gt; clazz)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bind(java.lang.Class<T>)">bind(Class)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindConstant()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a>
-      </span>
-      <span class="sympad">bindConstant</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bindConstant()">bindConstant()</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">bindInterceptor</span>
-      <span class="normal">(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor(com.google.inject.matcher.Matcher, com.google.inject.matcher.Matcher, org.aopalliance.intercept.MethodInterceptor[])</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">bindListener</span>
-      <span class="normal">(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener(com.google.inject.matcher.Matcher, com.google.inject.spi.TypeListener)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">bindScope</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation, <a href="../../../com/google/inject/Scope.html">Scope</a> scope)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope(Class, Scope)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="binder()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/Binder.html">Binder</a>
-      </span>
-      <span class="sympad">binder</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets direct access to the underlying <code>Binder</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="configure()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">configure</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Configures a <code><a href="../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">convertToTypes</span>
-      <span class="normal">(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes(Matcher<? super TypeLiteral<?>>, TypeConverter)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="currentStage()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/Stage.html">Stage</a>
-      </span>
-      <span class="sympad">currentStage</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#currentStage()">currentStage()</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector(TypeLiteral)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector(Class)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getProvider(com.google.inject.Key<T>)">getProvider(Key)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getProvider(java.lang.Class<T>)">getProvider(Class)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="install(com.google.inject.Module)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">install</span>
-      <span class="normal">(<a href="../../../com/google/inject/Module.html">Module</a> module)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#install(com.google.inject.Module)">install(Module)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requestInjection(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">requestInjection</span>
-      <span class="normal">(Object instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#requestInjection(java.lang.Object)">requestInjection(Object)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requestStaticInjection(java.lang.Class<?>...)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">requestStaticInjection</span>
-      <span class="normal">(Class...&lt;?&gt; types)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection(Class[])</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requireBinding(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">requireBinding</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Adds a dependency from this module to <code>key</code>. When the injector is
- created, Guice will report an error if <code>key</code> cannot be injected.
- Note that this requirement may be satisfied by implicit binding, such as
- a public no-arguments constructor.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="requireBinding(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">requireBinding</span>
-      <span class="normal">(Class&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Adds a dependency from this module to <code>type</code>. When the injector is
- created, Guice will report an error if <code>type</code> cannot be injected.
- Note that this requirement may be satisfied by implicit binding, such as
- a public no-arguments constructor.</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/Binder.html b/latest-javadoc/com/google/inject/Binder.html
deleted file mode 100755
index 951ad26..0000000
--- a/latest-javadoc/com/google/inject/Binder.html
+++ /dev/null
@@ -1,2190 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Binder
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>Binder</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Binder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></td>
-              <td class="jd-descrcol" width="100%">Returns a binder whose configuration information is hidden from its environment by default.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Collects configuration information (primarily <i>bindings</i>) which will be
- used to create an <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>. Guice provides this object to your
- application's <code><a href="../../../com/google/inject/Module.html">Module</a></code> implementors so they may each contribute
- their own bindings and other registrations.
-
- <h3>The Guice Binding EDSL</h3>
-
- Guice uses an <i>embedded domain-specific language</i>, 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: <b>it is difficult to
- learn how to use the Binding EDSL by reading
- method-level javadocs</b>.  Instead, you should consult the series of
- examples below.  To save space, these examples omit the opening
- <code>binder</code>, just as you will if your module extends
- <code><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></code>.
-
- <pre>
-     bind(ServiceImpl.class);</pre>
-
- This statement does essentially nothing; it "binds the <code>ServiceImpl</code>
- class to itself" and does not change Guice's default behavior.  You may still
- want to use this if you prefer your <code><a href="../../../com/google/inject/Module.html">Module</a></code> class to serve as an
- explicit <i>manifest</i> for the services it provides.  Also, in rare cases,
- Guice may be unable to validate a binding at injector creation time unless it
- is given explicitly.
-
- <pre>
-     bind(Service.class).to(ServiceImpl.class);</pre>
-
- Specifies that a request for a <code>Service</code> instance with no binding
- annotations should be treated as if it were a request for a
- <code>ServiceImpl</code> instance. This <i>overrides</i> the function of any
- <code><a href="../../../com/google/inject/ImplementedBy.html">@ImplementedBy</a></code> or <code><a href="../../../com/google/inject/ProvidedBy.html">@ProvidedBy</a></code>
- annotations found on <code>Service</code>, since Guice will have already
- "moved on" to <code>ServiceImpl</code> before it reaches the point when it starts
- looking for these annotations.
-
- <pre>
-     bind(Service.class).toProvider(ServiceProvider.class);</pre>
-
- In this example, <code>ServiceProvider</code> must extend or implement
- <code>Provider&lt;Service&gt;</code>. This binding specifies that Guice should resolve
- an unannotated injection request for <code>Service</code> by first resolving an
- instance of <code>ServiceProvider</code> in the regular way, then calling
- <code><a href="../../../com/google/inject/Provider.html#get()">get()</a></code> on the resulting Provider instance to obtain the
- <code>Service</code> instance.
-
- <p>The <code><a href="../../../com/google/inject/Provider.html">Provider</a></code> you use here does not have to be a "factory"; that
- is, a provider which always <i>creates</i> each instance it provides.
- However, this is generally a good practice to follow.  You can then use
- Guice's concept of <code><a href="../../../com/google/inject/Scope.html">scopes</a></code> to guide when creation should happen
- -- "letting Guice work for you".
-
- <pre>
-     bind(Service.class).annotatedWith(Red.class).to(ServiceImpl.class);</pre>
-
- Like the previous example, but only applies to injection requests that use
- the binding annotation <code>@Red</code>.  If your module also includes bindings
- for particular <i>values</i> of the <code>@Red</code> annotation (see below),
- then this binding will serve as a "catch-all" for any values of <code>@Red</code>
- that have no exact match in the bindings.
- 
- <pre>
-     bind(ServiceImpl.class).in(Singleton.class);
-     // or, alternatively
-     bind(ServiceImpl.class).in(Scopes.SINGLETON);</pre>
-
- Either of these statements places the <code>ServiceImpl</code> class into
- singleton scope.  Guice will create only one instance of <code>ServiceImpl</code>
- and will reuse it for all injection requests of this type.  Note that it is
- still possible to bind another instance of <code>ServiceImpl</code> if the second
- binding is qualified by an annotation as in the previous example.  Guice is
- not overly concerned with <i>preventing</i> you from creating multiple
- instances of your "singletons", only with <i>enabling</i> your application to
- share only one instance if that's all you tell Guice you need.
-
- <p><b>Note:</b> a scope specified in this way <i>overrides</i> any scope that
- was specified with an annotation on the <code>ServiceImpl</code> class.
- 
- <p>Besides <code><a href="../../../com/google/inject/Singleton.html">Singleton</a></code>/<code><a href="../../../com/google/inject/Scopes.html#SINGLETON">SINGLETON</a></code>, there are
- servlet-specific scopes available in
- <code>com.google.inject.servlet.ServletScopes</code>, and your Modules can
- contribute their own custom scopes for use here as well.
-
- <pre>
-     bind(new TypeLiteral&lt;PaymentService&lt;CreditCard>>() {})
-         .to(CreditCardPaymentService.class);</pre>
-
- This admittedly odd construct is the way to bind a parameterized type. It
- tells Guice how to honor an injection request for an element of type
- <code>PaymentService&lt;CreditCard&gt;</code>. The class
- <code>CreditCardPaymentService</code> must implement the
- <code>PaymentService&lt;CreditCard&gt;</code> interface.  Guice cannot currently bind or
- inject a generic type, such as <code>Set&lt;E&gt;</code>; all type parameters must be
- fully specified.
-
- <pre>
-     bind(Service.class).toInstance(new ServiceImpl());
-     // or, alternatively
-     bind(Service.class).toInstance(SomeLegacyRegistry.getService());</pre>
-
- In this example, your module itself, <i>not Guice</i>, takes responsibility
- for obtaining a <code>ServiceImpl</code> instance, then asks Guice to always use
- this single instance to fulfill all <code>Service</code> injection requests.  When
- the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> is created, it will automatically perform field
- and method injection for this instance, but any injectable constructor on
- <code>ServiceImpl</code> is simply ignored.  Note that using this approach results
- in "eager loading" behavior that you can't control.
-
- <pre>
-     bindConstant().annotatedWith(ServerHost.class).to(args[0]);</pre>
-
- 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 <code><a href="null#valueOf(java.lang.Class<T>, java.lang.String)">all enums</a></code>, and to
- <code><a href="null#forName(java.lang.String)">class literals</a></code>. Conversions for other types can be
- configured using <code><a href="../../../com/google/inject/Binder.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes()</a></code>.
-
- <pre>
-   @Color("red") Color red; // A member variable (field)
-    . . .
-     red = MyModule.class.getDeclaredField("red").getAnnotation(Color.class);
-     bind(Service.class).annotatedWith(red).to(RedService.class);</pre>
-
- 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 Guice.
-
- <pre>
-     bind(Service.class)
-         .annotatedWith(Names.named("blue"))
-         .to(BlueService.class);</pre>
-
- Differentiating by names is a common enough use case that we provided a
- standard annotation, <code><a href="../../../com/google/inject/name/Named.html">@Named</a></code>.  Because of
- Guice'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.
-
- <pre>
-     Constructor<T> loneCtor = getLoneCtorFromServiceImplViaReflection();
-     bind(ServiceImpl.class)
-         .toConstructor(loneCtor);</pre>
-
- In this example, we directly tell Guice which constructor to use in a concrete
- class implementation. It means that we do not need to place @Inject
- on any of the constructors and that Guice treats the provided constructor as though
- it were annotated so. It is useful for cases where you cannot modify existing
- classes and is a bit simpler than using a <code><a href="../../../com/google/inject/Provider.html">Provider</a></code>.
-
- <p>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 Guice will let something bogus slip by, and will then inform you of
- the problems at runtime, as soon as you try to create your Injector.
-
- <p>The other methods of Binder such as <code><a href="../../../com/google/inject/Binder.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope(Class<? extends Annotation>, Scope)</a></code>,
- <code><a href="../../../com/google/inject/Binder.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor(Matcher<? super Class<?>>, Matcher<? super Method>, MethodInterceptor...)</a></code>, <code><a href="../../../com/google/inject/Binder.html#install(com.google.inject.Module)">install(Module)</a></code>, <code><a href="../../../com/google/inject/Binder.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection(Class<?>...)</a></code>,
- <code><a href="../../../com/google/inject/Binder.html#addError(java.lang.String, java.lang.Object...)">addError(String, Object...)</a></code> and <code><a href="../../../com/google/inject/Binder.html#currentStage()">currentStage()</a></code> are not part of the Binding EDSL;
- you can learn how to use these in the usual way, from the method
- documentation.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-        <div class="jd-descrdiv">Records an error message to be presented to the user at a later time.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-        <div class="jd-descrdiv">Records an error message which will be presented to the user at a later
- time.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-        <div class="jd-descrdiv">Records an exception, the full details of which will be logged, and the
- message of which will be presented to the user at a later
- time.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bind(com.google.inject.Key<T>)">bind</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bind(com.google.inject.TypeLiteral<T>)">bind</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bind(java.lang.Class<T>)">bind</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bindConstant()">bindConstant</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-        <div class="jd-descrdiv">Binds method interceptor[s] to methods matched by class and method matchers.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</nobr>
-        
-        <div class="jd-descrdiv">Registers a listener for injectable types.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, <a href="../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-        <div class="jd-descrdiv">Binds a scope to an annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</nobr>
-        
-        <div class="jd-descrdiv">Binds a type converter.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#currentStage()">currentStage</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the current stage.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#disableCircularProxies()">disableCircularProxies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Prevents Guice from constructing a Proxy when a circular dependency
- is found.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-        <div class="jd-descrdiv">Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Returns the provider used to obtain instances for the given injection key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the provider used to obtain instances for the given injection type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#install(com.google.inject.Module)">install</a></span>(<a href="../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-        <div class="jd-descrdiv">Uses the given module to configure more bindings.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#newPrivateBinder()">newPrivateBinder</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Creates a new private child environment for bindings and other configuration.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#requestInjection(com.google.inject.TypeLiteral<T>, T)">requestInjection</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type, T instance)</nobr>
-        
-        <div class="jd-descrdiv">Upon successful creation, the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> will inject instance fields
- and methods of the given object.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#requestInjection(java.lang.Object)">requestInjection</a></span>(Object instance)</nobr>
-        
-        <div class="jd-descrdiv">Upon successful creation, the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> will inject instance fields
- and methods of the given object.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection</a></span>(Class...&lt;?&gt; types)</nobr>
-        
-        <div class="jd-descrdiv">Upon successful creation, the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> will inject static fields
- and methods in the given classes.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#requireExplicitBindings()">requireExplicitBindings</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Instructs the Injector that bindings must be listed in a Module in order to
- be injected.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#skipSources(java.lang.Class...)">skipSources</a></span>(Class... classesToSkip)</nobr>
-        
-        <div class="jd-descrdiv">Returns a binder that skips <code>classesToSkip</code> when identify the
- calling code.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#withSource(java.lang.Object)">withSource</a></span>(Object source)</nobr>
-        
-        <div class="jd-descrdiv">Returns a binder that uses <code>source</code> as the reference location for
- configuration errors.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="addError(com.google.inject.spi.Message)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(<a href="../../../com/google/inject/spi/Message.html">Message</a> message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records an error message to be presented to the user at a later time.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="addError(java.lang.String, java.lang.Object...)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(String message, Object... arguments)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records an error message which will be presented to the user at a later
- time. Unlike throwing an exception, this enable us to continue
- configuring the Injector and discover more errors. Uses <code><a href="null#format(java.lang.String, java.lang.Object...)">format(String, Object[])</a></code> to insert the arguments into the
- message.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="addError(java.lang.Throwable)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(Throwable t)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records an exception, the full details of which will be logged, and the
- message of which will be presented to the user at a later
- time. If your Module calls something that you worry may fail, you should
- catch the exception and pass it into this.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="bind(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="bind(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="bind(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="bindConstant()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a>
-      </span>
-      <span class="sympad">bindConstant</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">bindInterceptor</span>
-      <span class="normal">(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds method interceptor[s] to methods matched by class and method matchers. A method is
- eligible for interception if:
-
- <ul>
-  <li>Guice created the instance the method is on</li>
-  <li>Neither the enclosing type nor the method is final</li>
-  <li>And the method is package-private, protected, or public</li>
- </ul></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>classMatcher</td>
-          <td>matches classes the interceptor should apply to. For
-     example: <code>only(Runnable.class)</code>.</td>
-        </tr>
-        <tr>
-          <th>methodMatcher</td>
-          <td>matches methods the interceptor should apply to. For
-     example: <code>annotatedWith(Transactional.class)</code>.</td>
-        </tr>
-        <tr>
-          <th>interceptors</td>
-          <td>to bind
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">bindListener</span>
-      <span class="normal">(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Registers a listener for injectable types. Guice will notify the listener when it encounters
- injectable types matched by the given type matcher.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>typeMatcher</td>
-          <td>that matches injectable types the listener should be notified of</td>
-        </tr>
-        <tr>
-          <th>listener</td>
-          <td>for injectable types matched by typeMatcher</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">bindScope</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, <a href="../../../com/google/inject/Scope.html">Scope</a> scope)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds a scope to an annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">convertToTypes</span>
-      <span class="normal">(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds a type converter. The injector will use the given converter to
- convert string constants to matching types as needed.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>typeMatcher</td>
-          <td>matches types the converter can handle</td>
-        </tr>
-        <tr>
-          <th>converter</td>
-          <td>converts values</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="currentStage()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Stage.html">Stage</a>
-      </span>
-      <span class="sympad">currentStage</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the current stage.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="disableCircularProxies()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">disableCircularProxies</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Prevents Guice from constructing a Proxy when a circular dependency
- is found.  By default, circular proxies are not disabled.
- <p>
- If a parent injector disables circular proxies, then all child injectors
- (and private modules within that injector) also disable circular proxies.
- If a parent does not disable circular proxies, a child injector or private
- module may optionally declare itself as disabling circular proxies. If it
- does, the behavior is limited only to that child or any grandchildren. No
- siblings of the child will disable circular proxies.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>. The returned members injector will not be valid until the main
- <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> has been created. The members injector will throw an <code>IllegalStateException</code> if you try to use it beforehand.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>typeLiteral</td>
-          <td>type to get members injector for</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>. The returned members injector will not be valid until the main
- <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> has been created. The members injector will throw an <code>IllegalStateException</code> if you try to use it beforehand.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>type</td>
-          <td>type to get members injector for</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the provider used to obtain instances for the given injection key.
- The returned provider will not be valid until the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> has been
- created. The provider will throw an <code>IllegalStateException</code> if you
- try to use it beforehand.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the provider used to obtain instances for the given injection type.
- The returned provider will not be valid until the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> has been
- created. The provider will throw an <code>IllegalStateException</code> if you
- try to use it beforehand.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="install(com.google.inject.Module)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">install</span>
-      <span class="normal">(<a href="../../../com/google/inject/Module.html">Module</a> module)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Uses the given module to configure more bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newPrivateBinder()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a>
-      </span>
-      <span class="sympad">newPrivateBinder</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a new private child environment for bindings and other configuration. The returned
- binder can be used to add and configuration information in this environment. See <code><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></code> for details.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a binder that inherits configuration from this binder. Only exposed configuration on
-      the returned binder will be visible to this binder.</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requestInjection(com.google.inject.TypeLiteral<T>, T)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">requestInjection</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type, T instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Upon successful creation, the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> will inject instance fields
- and methods of the given object.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>type</td>
-          <td>of instance</td>
-        </tr>
-        <tr>
-          <th>instance</td>
-          <td>for which members will be injected</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requestInjection(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">requestInjection</span>
-      <span class="normal">(Object instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Upon successful creation, the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> will inject instance fields
- and methods of the given object.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>instance</td>
-          <td>for which members will be injected</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requestStaticInjection(java.lang.Class<?>...)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">requestStaticInjection</span>
-      <span class="normal">(Class...&lt;?&gt; types)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Upon successful creation, the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> will inject static fields
- and methods in the given classes.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>types</td>
-          <td>for which static members will be injected
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requireExplicitBindings()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">requireExplicitBindings</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Instructs the Injector that bindings must be listed in a Module in order to
- be injected. Classes that are not explicitly bound in a module cannot be
- injected. Bindings created through a linked binding (
- <code>bind(Foo.class).to(FooImpl.class)</code>) are allowed, but the
- implicit binding (<code>FooImpl</code>) cannot be directly injected unless
- it is also explicitly bound (<code>bind(FooImpl.class)</code>).
- <p>
- Tools can still retrieve bindings for implicit bindings (bindings created
- through a linked binding) if explicit bindings are required, however
- <code><a href="../../../com/google/inject/Binding.html#getProvider()">getProvider()</a></code> will fail.
- <p>
- By default, explicit bindings are not required.
- <p>
- If a parent injector requires explicit bindings, then all child injectors
- (and private modules within that injector) also require explicit bindings.
- If a parent does not require explicit bindings, a child injector or private
- module may optionally declare itself as requiring explicit bindings. If it
- does, the behavior is limited only to that child or any grandchildren. No
- siblings of the child will require explicit bindings.
- <p>
- If the parent did not require explicit bindings but the child does, it is
- possible that a linked binding in the child may add a JIT binding to the
- parent. The child will not be allowed to reference the target binding
- directly, but the parent and other children of the parent may be able to.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="skipSources(java.lang.Class...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Binder.html">Binder</a>
-      </span>
-      <span class="sympad">skipSources</span>
-      <span class="normal">(Class... classesToSkip)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a binder that skips <code>classesToSkip</code> when identify the
- calling code. The caller's StackTraceElement is used to locate
- the source of configuration errors.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>classesToSkip</td>
-          <td>library classes that create bindings on behalf of
-      their clients.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a binder that shares its configuration with this binder.</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="withSource(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Binder.html">Binder</a>
-      </span>
-      <span class="sympad">withSource</span>
-      <span class="normal">(Object source)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a binder that uses <code>source</code> as the reference location for
- configuration errors. This is typically a StackTraceElement
- for <code>.java</code> source but it could any binding source, such as the
- path to a <code>.properties</code> file.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>source</td>
-          <td>any object representing the source location and has a
-     concise <code><a href="null#toString()">toString()</a></code> value</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a binder that shares its configuration with this binder</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/Binding.html b/latest-javadoc/com/google/inject/Binding.html
deleted file mode 100755
index 6d597dc..0000000
--- a/latest-javadoc/com/google/inject/Binding.html
+++ /dev/null
@@ -1,952 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Binding
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>Binding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Binding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;,
-            
-              <a href="../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;,
-            
-              <a href="../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;,
-            
-              <a href="../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;,
-            
-              <a href="../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;,
-            
-              <a href="../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;,
-            
-              <a href="../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;,
-            
-              <a href="../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;,
-            
-              <a href="../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to the constructor of a concrete clss.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding created from converting a bound instance to a new type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a key exposed from an enclosed private environment.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a single instance.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a linked key.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a <code><a href="../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the provided type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a provider instance.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a provider key.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">An untargetted binding.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A mapping from a key (type and optional annotation) to the strategy for getting instances of the
- type. This interface is part of the introspection API and is intended primarily for use by 
- tools.
-
- <p>Bindings are created in several ways:
- <ul>
-     <li>Explicitly in a module, via <code>bind()</code> and <code>bindConstant()</code>
-         statements:
- <pre>
-     bind(Service.class).annotatedWith(Red.class).to(ServiceImpl.class);
-     bindConstant().annotatedWith(ServerHost.class).to(args[0]);</pre></li>
-     <li>Implicitly by the Injector by following a type's <code><a href="../../../com/google/inject/ImplementedBy.html">pointer</a></code> <code><a href="../../../com/google/inject/ProvidedBy.html">annotations</a></code> or by using its <code><a href="../../../com/google/inject/Inject.html">annotated</a></code> or
-         default constructor.</li>
-     <li>By converting a bound instance to a different type.</li>
-     <li>For <code><a href="../../../com/google/inject/Provider.html">providers</a></code>, by delegating to the binding for the provided type.</li>
- </ul>
-
-
- <p>They exist on both modules and on injectors, and their behaviour is different for each:
- <ul>
-     <li><strong>Module bindings</strong> are incomplete and cannot be used to provide instances.
-         This is because the applicable scopes and interceptors may not be known until an injector
-         is created. From a tool's perspective, module bindings are like the injector's source
-         code. They can be inspected or rewritten, but this analysis must be done statically.</li>
-     <li><strong>Injector bindings</strong> are complete and valid and can be used to provide
-         instances. From a tools' perspective, injector bindings are like reflection for an
-         injector. They have full runtime information, including the complete graph of injections
-         necessary to satisfy a binding.</li>
- </ul></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">acceptScopingVisitor</span>
-      <span class="normal">(<a href="../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts a scoping visitor. Invokes the visitor method specific to this binding's scoping.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">acceptTargetVisitor</span>
-      <span class="normal">(<a href="../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts a target visitor. Invokes the visitor method specific to this binding's target.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getKey()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the key for this binding.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the scoped provider guice uses to fulfill requests for this
- binding.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>UnsupportedOperationException</td>
-            <td>when invoked on a <code><a href="../../../com/google/inject/Binding.html">Binding</a></code>
-      created via <code><a href="../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Module...)">getElements(Module...)</a></code>. This
-      method is only supported on <code><a href="../../../com/google/inject/Binding.html">Binding</a></code>s returned from an injector.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/BindingAnnotation.html b/latest-javadoc/com/google/inject/BindingAnnotation.html
deleted file mode 100755
index 1d9b673..0000000
--- a/latest-javadoc/com/google/inject/BindingAnnotation.html
+++ /dev/null
@@ -1,609 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  BindingAnnotation
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>BindingAnnotation</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.BindingAnnotation</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Annotates annotations which are used for binding. Only one such annotation
- may apply to a single injection point. You must also annotate binder
- annotations with <code>@Retention(RUNTIME)</code>. For example:
-
- <pre>
-   <code>@</code>Retention(RUNTIME)
-   <code>@</code>Target({ FIELD, PARAMETER, METHOD })
-   <code>@</code>BindingAnnotation
-   public <code>@</code>interface Transactional {}
- </pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/ConfigurationException.html b/latest-javadoc/com/google/inject/ConfigurationException.html
deleted file mode 100755
index eaaeea3..0000000
--- a/latest-javadoc/com/google/inject/ConfigurationException.html
+++ /dev/null
@@ -1,1296 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  ConfigurationException
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>ConfigurationException</h1>
-
-
-
-  
-  
-  
-
-  
-  
-  
-
-  
-  
-  
-
-  
-    extends RuntimeException<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="5" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="4" class="jd-inheritance-class-cell">java.lang.Throwable</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Exception</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.RuntimeException</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.ConfigurationException</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Thrown when a programming error such as a misplaced annotation, illegal binding, or unsupported
- scope is found. Clients should catch this exception, log it, and stop execution.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ConfigurationException.html#ConfigurationException(java.lang.Iterable<com.google.inject.spi.Message>)">ConfigurationException</a></span>(Iterable&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt; messages)</nobr>
-        
-        <div class="jd-descrdiv">Creates a ConfigurationException containing <code>messages</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ConfigurationException.html#getErrorMessages()">getErrorMessages</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns messages for the errors that caused this exception.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ConfigurationException.html#getMessage()">getMessage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;E&gt;
-            E</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ConfigurationException.html#getPartialValue()">getPartialValue</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns a value that was only partially computed due to this exception.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ConfigurationException.html#withPartialValue(java.lang.Object)">withPartialValue</a></span>(Object partialValue)</nobr>
-        
-        <div class="jd-descrdiv">Returns a copy of this configuration exception with the specified partial value.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Throwable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Throwable-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Throwable
-
-<div id="inherited-methods-java.lang.Throwable">
-  <div id="inherited-methods-java.lang.Throwable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Throwable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">fillInStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getCause</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getLocalizedMessage</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getMessage</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            StackTraceElement[]</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initCause</span>(Throwable arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setStackTrace</span>(StackTraceElement[] arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="ConfigurationException(java.lang.Iterable<com.google.inject.spi.Message>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ConfigurationException</span>
-      <span class="normal">(Iterable&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt; messages)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a ConfigurationException containing <code>messages</code>. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getErrorMessages()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt;
-      </span>
-      <span class="sympad">getErrorMessages</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns messages for the errors that caused this exception. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMessage()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getMessage</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getPartialValue()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        E
-      </span>
-      <span class="sympad">getPartialValue</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a value that was only partially computed due to this exception. The caller can use
- this while collecting additional configuration problems.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>the partial value, or <code>null</code> if none was set. The type of the partial value is
-      specified by the throwing method.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="withPartialValue(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a>
-      </span>
-      <span class="sympad">withPartialValue</span>
-      <span class="normal">(Object partialValue)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a copy of this configuration exception with the specified partial value. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/CreationException.html b/latest-javadoc/com/google/inject/CreationException.html
deleted file mode 100755
index 45fc294..0000000
--- a/latest-javadoc/com/google/inject/CreationException.html
+++ /dev/null
@@ -1,1187 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  CreationException
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>CreationException</h1>
-
-
-
-  
-  
-  
-
-  
-  
-  
-
-  
-  
-  
-
-  
-    extends RuntimeException<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="5" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="4" class="jd-inheritance-class-cell">java.lang.Throwable</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Exception</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.RuntimeException</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.CreationException</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Thrown when errors occur while creating a <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>. Includes a list of encountered
- errors. Clients should catch this exception, log it, and stop execution.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/CreationException.html#CreationException(java.util.Collection<com.google.inject.spi.Message>)">CreationException</a></span>(Collection&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt; messages)</nobr>
-        
-        <div class="jd-descrdiv">Creates a CreationException containing <code>messages</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/CreationException.html#getErrorMessages()">getErrorMessages</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns messages for the errors that caused this exception.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/CreationException.html#getMessage()">getMessage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Throwable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Throwable-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Throwable
-
-<div id="inherited-methods-java.lang.Throwable">
-  <div id="inherited-methods-java.lang.Throwable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Throwable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">fillInStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getCause</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getLocalizedMessage</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getMessage</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            StackTraceElement[]</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initCause</span>(Throwable arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setStackTrace</span>(StackTraceElement[] arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="CreationException(java.util.Collection<com.google.inject.spi.Message>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">CreationException</span>
-      <span class="normal">(Collection&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt; messages)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a CreationException containing <code>messages</code>. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getErrorMessages()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt;
-      </span>
-      <span class="sympad">getErrorMessages</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns messages for the errors that caused this exception. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMessage()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getMessage</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/Exposed.html b/latest-javadoc/com/google/inject/Exposed.html
deleted file mode 100755
index bec9b86..0000000
--- a/latest-javadoc/com/google/inject/Exposed.html
+++ /dev/null
@@ -1,601 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Exposed
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>Exposed</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Exposed</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Acccompanies a @<code><a href="../../../com/google/inject/Provides.html">Provides</a></code> method annotation in a
- private module to indicate that the provided binding is exposed.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/Guice.html b/latest-javadoc/com/google/inject/Guice.html
deleted file mode 100755
index a039f85..0000000
--- a/latest-javadoc/com/google/inject/Guice.html
+++ /dev/null
@@ -1,1015 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Guice
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>Guice</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Guice</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>The entry point to the Guice framework. Creates <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>s from
- <code><a href="../../../com/google/inject/Module.html">Module</a></code>s.
-
- <p>Guice supports a model of development that draws clear boundaries between
- APIs, Implementations of these APIs, Modules which configure these
- implementations, and finally Applications which consist of a collection of
- Modules. It is the Application, which typically defines your <code>main()</code>
- method, that bootstraps the Guice Injector using the <code>Guice</code> class, as
- in this example:
- <pre>
-     public class FooApplication {
-       public static void main(String[] args) {
-         Injector injector = Guice.createInjector(
-             new ModuleA(),
-             new ModuleB(),
-             . . .
-             new FooApplicationFlagsModule(args)
-         );
-
-         // Now just bootstrap the application and you're done
-         FooStarter starter = injector.getInstance(FooStarter.class);
-         starter.runApplication();
-       }
-     }
- </pre>
-</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../com/google/inject/Injector.html">Injector</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Guice.html#createInjector(com.google.inject.Module...)">createInjector</a></span>(<a href="../../../com/google/inject/Module.html">Module...</a> modules)</nobr>
-        
-        <div class="jd-descrdiv">Creates an injector for the given set of modules.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../com/google/inject/Injector.html">Injector</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Guice.html#createInjector(com.google.inject.Stage, com.google.inject.Module...)">createInjector</a></span>(<a href="../../../com/google/inject/Stage.html">Stage</a> stage, <a href="../../../com/google/inject/Module.html">Module...</a> modules)</nobr>
-        
-        <div class="jd-descrdiv">Creates an injector for the given set of modules, in a given development
- stage.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../com/google/inject/Injector.html">Injector</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Guice.html#createInjector(com.google.inject.Stage, java.lang.Iterable<? extends com.google.inject.Module>)">createInjector</a></span>(<a href="../../../com/google/inject/Stage.html">Stage</a> stage, Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../com/google/inject/Module.html">Module</a>&gt; modules)</nobr>
-        
-        <div class="jd-descrdiv">Creates an injector for the given set of modules, in a given development
- stage.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../com/google/inject/Injector.html">Injector</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Guice.html#createInjector(java.lang.Iterable<? extends com.google.inject.Module>)">createInjector</a></span>(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../com/google/inject/Module.html">Module</a>&gt; modules)</nobr>
-        
-        <div class="jd-descrdiv">Creates an injector for the given set of modules.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="createInjector(com.google.inject.Module...)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Injector.html">Injector</a>
-      </span>
-      <span class="sympad">createInjector</span>
-      <span class="normal">(<a href="../../../com/google/inject/Module.html">Module...</a> modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates an injector for the given set of modules.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/CreationException.html">CreationException</a></td>
-            <td>if one or more errors occur during injector
-     construction
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="createInjector(com.google.inject.Stage, com.google.inject.Module...)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Injector.html">Injector</a>
-      </span>
-      <span class="sympad">createInjector</span>
-      <span class="normal">(<a href="../../../com/google/inject/Stage.html">Stage</a> stage, <a href="../../../com/google/inject/Module.html">Module...</a> modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates an injector for the given set of modules, in a given development
- stage.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/CreationException.html">CreationException</a></td>
-            <td>if one or more errors occur during injector
-     creation.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="createInjector(com.google.inject.Stage, java.lang.Iterable<? extends com.google.inject.Module>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Injector.html">Injector</a>
-      </span>
-      <span class="sympad">createInjector</span>
-      <span class="normal">(<a href="../../../com/google/inject/Stage.html">Stage</a> stage, Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../com/google/inject/Module.html">Module</a>&gt; modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates an injector for the given set of modules, in a given development
- stage.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/CreationException.html">CreationException</a></td>
-            <td>if one or more errors occur during injector
-     construction
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="createInjector(java.lang.Iterable<? extends com.google.inject.Module>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Injector.html">Injector</a>
-      </span>
-      <span class="sympad">createInjector</span>
-      <span class="normal">(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../com/google/inject/Module.html">Module</a>&gt; modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates an injector for the given set of modules.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/CreationException.html">CreationException</a></td>
-            <td>if one or more errors occur during injector
-     creation
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/ImplementedBy.html b/latest-javadoc/com/google/inject/ImplementedBy.html
deleted file mode 100755
index 4b2823a..0000000
--- a/latest-javadoc/com/google/inject/ImplementedBy.html
+++ /dev/null
@@ -1,600 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  ImplementedBy
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>ImplementedBy</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.ImplementedBy</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A pointer to the default implementation of a type.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/Inject.html b/latest-javadoc/com/google/inject/Inject.html
deleted file mode 100755
index 5d306f7..0000000
--- a/latest-javadoc/com/google/inject/Inject.html
+++ /dev/null
@@ -1,621 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Inject
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>Inject</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Inject</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Annotates members of your implementation class (constructors, methods
- and fields) into which the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> should inject values.
- The Injector fulfills injection requests for:
-
- <ul>
- <li>Every instance it constructs. The class being constructed must have
- exactly one of its constructors marked with <code>@Inject</code> or must have a
- constructor taking no parameters. The Injector then proceeds to perform
- method and field injections.
- 
- <li>Pre-constructed instances passed to <code><a href="../../../com/google/inject/Injector.html#injectMembers(java.lang.Object)">injectMembers(Object)</a></code>,
- <code><a href="../../../com/google/inject/binder/LinkedBindingBuilder.html#toInstance(T)">toInstance(Object)</a></code> and
- <code><a href="../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(com.google.inject.Provider<? extends T>)">toProvider(Provider)</a></code>.
- In this case all constructors are, of course, ignored.
-
- <li>Static fields and methods of classes which any <code><a href="../../../com/google/inject/Module.html">Module</a></code> has
- specifically requested static injection for, using
- <code><a href="../../../com/google/inject/Binder.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection(Class<?>...)</a></code>.
- </ul>
-
- In all cases, a member can be injected regardless of its Java access
- specifier (private, default, protected, public).</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/Injector.html b/latest-javadoc/com/google/inject/Injector.html
deleted file mode 100755
index 9b68f5c..0000000
--- a/latest-javadoc/com/google/inject/Injector.html
+++ /dev/null
@@ -1,1623 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Injector
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>Injector</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Injector</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Builds the graphs of objects that make up your application. The injector tracks the dependencies
- for each type and uses bindings to inject them. This is the core of Guice, although you rarely
- interact with it directly. This "behind-the-scenes" operation is what distinguishes dependency
- injection from its cousin, the service locator pattern.
-
- <p>Contains several default bindings:
-
- <ul>
- <li>This <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> instance itself
- <li>A <code>Provider&lt;T&gt;</code> for each binding of type <code>T</code>
- <li>The java.util.logging.Logger for the class being injected
- <li>The <code><a href="../../../com/google/inject/Stage.html">Stage</a></code> in which the Injector was created
- </ul>
-
- Injectors are created using the facade class <code><a href="../../../com/google/inject/Guice.html">Guice</a></code>.
-
- <p>An injector can also <code><a href="../../../com/google/inject/Injector.html#injectMembers(java.lang.Object)">inject the dependencies</a></code> of
- already-constructed instances. This can be used to interoperate with objects created by other
- frameworks or services.
-
- <p>Injectors can be <code><a href="../../../com/google/inject/Injector.html#createChildInjector(java.lang.Iterable<? extends com.google.inject.Module>)">hierarchical</a></code>. Child injectors inherit
- the configuration of their parent injectors, but the converse does not hold.
-
- <p>The injector's <code><a href="../../../com/google/inject/Injector.html#getBindings()">internal bindings</a></code> are available for introspection. This
- enables tools and extensions to operate on an injector reflectively.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Injector.html">Injector</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#createChildInjector(com.google.inject.Module...)">createChildInjector</a></span>(<a href="../../../com/google/inject/Module.html">Module...</a> modules)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new injector that inherits all state from this injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Injector.html">Injector</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#createChildInjector(java.lang.Iterable<? extends com.google.inject.Module>)">createChildInjector</a></span>(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../com/google/inject/Module.html">Module</a>&gt; modules)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new injector that inherits all state from this injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            List&lt;<a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#findBindingsByType(com.google.inject.TypeLiteral<T>)">findBindingsByType</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns all explicit bindings for <code>type</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Map&lt;<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;,&nbsp;<a href="../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getAllBindings()">getAllBindings</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns a snapshot of this injector's bindings, <strong>both explicit and
- just-in-time</strong>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getBinding(com.google.inject.Key<T>)">getBinding</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Returns the binding for the given injection key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getBinding(java.lang.Class<T>)">getBinding</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the binding for the given type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Map&lt;<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;,&nbsp;<a href="../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getBindings()">getBindings</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns this injector's <strong>explicit</strong> bindings.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getExistingBinding(com.google.inject.Key<T>)">getExistingBinding</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Returns the binding if it already exists, or null if does not exist.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getInstance(com.google.inject.Key<T>)">getInstance</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Returns the appropriate instance for the given injection key; equivalent to <code>getProvider(key).get()</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getInstance(java.lang.Class<T>)">getInstance</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the appropriate instance for the given injection type; equivalent to <code>getProvider(type).get()</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-        <div class="jd-descrdiv">Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Injector.html">Injector</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getParent()">getParent</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns this injector's parent, or <code>null</code> if this is a top-level injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Returns the provider used to obtain instances for the given injection key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the provider used to obtain instances for the given type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Map&lt;Class&lt;?&nbsp;extends&nbsp;Annotation&gt;,&nbsp;<a href="../../../com/google/inject/Scope.html">Scope</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getScopeBindings()">getScopeBindings</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns a map containing all scopes in the injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#getTypeConverterBindings()">getTypeConverterBindings</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns a set containing all type converter bindings in the injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Injector.html#injectMembers(java.lang.Object)">injectMembers</a></span>(Object instance)</nobr>
-        
-        <div class="jd-descrdiv">Injects dependencies into the fields and methods of <code>instance</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="createChildInjector(com.google.inject.Module...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Injector.html">Injector</a>
-      </span>
-      <span class="sympad">createChildInjector</span>
-      <span class="normal">(<a href="../../../com/google/inject/Module.html">Module...</a> modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new injector that inherits all state from this injector. All bindings, scopes,
- interceptors and type converters are inherited -- they are visible to the child injector.
- Elements of the child injector are not visible to its parent.
-
- <p>Just-in-time bindings created for child injectors will be created in an ancestor injector
- whenever possible. This allows for scoped instances to be shared between injectors. Use
- explicit bindings to prevent bindings from being shared with the parent injector.
-
- <p>No key may be bound by both an injector and one of its ancestors. This includes just-in-time
- bindings. The lone exception is the key for <code>Injector.class</code>, which is bound by each
- injector to itself.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="createChildInjector(java.lang.Iterable<? extends com.google.inject.Module>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Injector.html">Injector</a>
-      </span>
-      <span class="sympad">createChildInjector</span>
-      <span class="normal">(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../com/google/inject/Module.html">Module</a>&gt; modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new injector that inherits all state from this injector. All bindings, scopes,
- interceptors and type converters are inherited -- they are visible to the child injector.
- Elements of the child injector are not visible to its parent.
-
- <p>Just-in-time bindings created for child injectors will be created in an ancestor injector
- whenever possible. This allows for scoped instances to be shared between injectors. Use
- explicit bindings to prevent bindings from being shared with the parent injector.
-
- <p>No key may be bound by both an injector and one of its ancestors. This includes just-in-time
- bindings. The lone exception is the key for <code>Injector.class</code>, which is bound by each
- injector to itself.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="findBindingsByType(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        List&lt;<a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;&gt;
-      </span>
-      <span class="sympad">findBindingsByType</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns all explicit bindings for <code>type</code>.
-
- <p>This method is part of the Guice SPI and is intended for use by tools and extensions.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getAllBindings()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Map&lt;<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;,&nbsp;<a href="../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getAllBindings</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a snapshot of this injector's bindings, <strong>both explicit and
- just-in-time</strong>. The returned map is immutable; it contains only the bindings that were
- present when <code>getAllBindings()</code> was invoked. Subsequent calls may return a map with
- additional just-in-time bindings.
-
- <p>The returned map does not include bindings inherited from a <code><a href="../../../com/google/inject/Injector.html#getParent()">parent
- injector</a></code>, should one exist.
-
- <p>This method is part of the Guice SPI and is intended for use by tools and extensions.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getBinding(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getBinding</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the binding for the given injection key. This will be an explicit bindings if the key
- was bound explicitly by a module, or an implicit binding otherwise. The implicit binding will
- be created if necessary.
-
- <p>This method is part of the Guice SPI and is intended for use by tools and extensions.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if this injector cannot find or create the binding.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getBinding(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getBinding</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the binding for the given type. This will be an explicit bindings if the injection key
- was bound explicitly by a module, or an implicit binding otherwise. The implicit binding will
- be created if necessary.
-
- <p>This method is part of the Guice SPI and is intended for use by tools and extensions.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if this injector cannot find or create the binding.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getBindings()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Map&lt;<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;,&nbsp;<a href="../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getBindings</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns this injector's <strong>explicit</strong> bindings.
-
- <p>The returned map does not include bindings inherited from a <code><a href="../../../com/google/inject/Injector.html#getParent()">parent
- injector</a></code>, should one exist. The returned map is guaranteed to iterate (for example, with
- its <code><a href="null#entrySet()">entrySet()</a></code> iterator) in the order of insertion. In other words, the order in
- which bindings appear in user Modules.
-
- <p>This method is part of the Guice SPI and is intended for use by tools and extensions.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getExistingBinding(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getExistingBinding</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the binding if it already exists, or null if does not exist. Unlike
- <code><a href="../../../com/google/inject/Injector.html#getBinding(com.google.inject.Key<T>)">getBinding(Key)</a></code>, this does not attempt to create just-in-time bindings
- for keys that aren't bound.
- 
- <p> This method is part of the Guice SPI and is intended for use by tools and extensions.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getInstance(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">getInstance</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the appropriate instance for the given injection key; equivalent to <code>getProvider(key).get()</code>. When feasible, avoid using this method, in favor of having Guice
- inject your dependencies ahead of time.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if this injector cannot find or create the provider.</td>
-        </tr>  
-        <tr>
-            <th><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></td>
-            <td>if there was a runtime failure while providing an instance.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getInstance(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">getInstance</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the appropriate instance for the given injection type; equivalent to <code>getProvider(type).get()</code>. When feasible, avoid using this method, in favor of having Guice
- inject your dependencies ahead of time.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if this injector cannot find or create the provider.</td>
-        </tr>  
-        <tr>
-            <th><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></td>
-            <td>if there was a runtime failure while providing an instance.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>typeLiteral</td>
-          <td>type to get members injector for</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">for an alternative that offers up front error
-  detection</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>. When feasible, use <code><a href="../../../com/google/inject/Binder.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector(TypeLiteral)</a></code>
- instead to get increased up front error detection.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>type</td>
-          <td>type to get members injector for</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getMembersInjector(java.lang.Class<T>)">for an alternative that offers up front error
-  detection</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getParent()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Injector.html">Injector</a>
-      </span>
-      <span class="sympad">getParent</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns this injector's parent, or <code>null</code> if this is a top-level injector.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the provider used to obtain instances for the given injection key. When feasible, avoid
- using this method, in favor of having Guice inject your dependencies ahead of time.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if this injector cannot find or create the provider.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getProvider(com.google.inject.Key<T>)">for an alternative that offers up front error detection
-</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the provider used to obtain instances for the given type. When feasible, avoid
- using this method, in favor of having Guice inject your dependencies ahead of time.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if this injector cannot find or create the provider.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getProvider(java.lang.Class<T>)">for an alternative that offers up front error detection
-</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getScopeBindings()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Map&lt;Class&lt;?&nbsp;extends&nbsp;Annotation&gt;,&nbsp;<a href="../../../com/google/inject/Scope.html">Scope</a>&gt;
-      </span>
-      <span class="sympad">getScopeBindings</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a map containing all scopes in the injector. The maps keys are scoping annotations
- like <code>Singleton.class</code>, and the values are scope instances, such as <code>Scopes.SINGLETON</code>. The returned map is immutable.
-
- <p>This method is part of the Guice SPI and is intended for use by tools and extensions.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTypeConverterBindings()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Set&lt;<a href="../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a>&gt;
-      </span>
-      <span class="sympad">getTypeConverterBindings</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a set containing all type converter bindings in the injector. The returned set is
- immutable.
-
- <p>This method is part of the Guice SPI and is intended for use by tools and extensions.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="injectMembers(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">injectMembers</span>
-      <span class="normal">(Object instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Injects dependencies into the fields and methods of <code>instance</code>. Ignores the presence or
- absence of an injectable constructor.
-
- <p>Whenever Guice creates an instance, it performs this injection automatically (after first
- performing constructor injection), so if you're able to let Guice create all your objects for
- you, you'll never need to use this method.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>instance</td>
-          <td>to inject members on</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getMembersInjector(java.lang.Class<T>)">for a preferred alternative that supports checks before
-  run time
-</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/Key.html b/latest-javadoc/com/google/inject/Key.html
deleted file mode 100755
index 338d851..0000000
--- a/latest-javadoc/com/google/inject/Key.html
+++ /dev/null
@@ -1,1987 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Key
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-  <a href="#proctors">Protected Ctors</a>
-  
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>Key</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Key&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Binding key consisting of an injection type and an optional annotation.
- Matches the type and annotation at a point of injection.
-
- <p>For example, <code>Key.get(Service.class, Transactional.class)</code> will
- match:
-
- <pre>
-   @Inject
-   public void setService(@Transactional Service service) {
-     ...
-   }
- </pre>
-
- <p><code>Key</code> supports generic types via subclassing just like <code><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a></code>.
-
- <p>Keys do not differentiate between primitive types (int, char, etc.) and
- their correpsonding wrapper types (Integer, Character, etc.). Primitive
- types will be replaced with their wrapper types when keys are created.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="proctors" class="jd-sumtable"><tr><th colspan="12">Protected Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#Key()">Key</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Constructs a new key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#Key(java.lang.Class<? extends java.lang.annotation.Annotation>)">Key</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">Constructs a new key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#Key(java.lang.annotation.Annotation)">Key</a></span>(Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">Constructs a new key.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#equals(java.lang.Object)">equals</a></span>(Object o)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#get(com.google.inject.TypeLiteral<T>)">get</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-        <div class="jd-descrdiv">Gets a key for an injection type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#get(com.google.inject.TypeLiteral<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)">get</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">Gets a key for an injection type and an annotation type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#get(com.google.inject.TypeLiteral<T>, java.lang.annotation.Annotation)">get</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral, Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">Gets a key for an injection type and an annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#get(java.lang.Class<T>)">get</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Gets a key for an injection type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#get(java.lang.Class<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)">get</a></span>(Class&lt;T&gt; type, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">Gets a key for an injection type and an annotation type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#get(java.lang.Class<T>, java.lang.annotation.Annotation)">get</a></span>(Class&lt;T&gt; type, Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">Gets a key for an injection type and an annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#get(java.lang.reflect.Type)">get</a></span>(Type type)</nobr>
-        
-        <div class="jd-descrdiv">Gets a key for an injection type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#get(java.lang.reflect.Type, java.lang.Class<? extends java.lang.annotation.Annotation>)">get</a></span>(Type type, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">Gets a key for an injection type and an annotation type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#get(java.lang.reflect.Type, java.lang.annotation.Annotation)">get</a></span>(Type type, Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">Gets a key for an injection type and an annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Annotation</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#getAnnotation()">getAnnotation</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#getAnnotationType()">getAnnotationType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the annotation type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#getTypeLiteral()">getTypeLiteral</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the key type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#hasAttributes()">hasAttributes</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns true if this key has annotation attributes.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#hashCode()">hashCode</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#ofType(com.google.inject.TypeLiteral<T>)">ofType</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new key of the specified type with the same annotation as this
- key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#ofType(java.lang.Class<T>)">ofType</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new key of the specified type with the same annotation as this
- key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#ofType(java.lang.reflect.Type)">ofType</a></span>(Type type)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new key of the specified type with the same annotation as this
- key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Key.html#withoutAttributes()">withoutAttributes</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns this key without annotation attributes, i.e.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-<h2>Protected Constructors</h2>
-
-
-
-<A NAME="Key()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">Key</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Constructs a new key. Derives the type from this class's type parameter.
-
- <p>Clients create an empty anonymous subclass. Doing so embeds the type
- parameter in the anonymous class's type hierarchy so we can reconstitute it
- at runtime despite erasure.
-
- <p>Example usage for a binding of type <code>Foo</code>:
-
- <p><code>new Key&lt;Foo&gt;() {</code>}.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="Key(java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">Key</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Constructs a new key. Derives the type from this class's type parameter.
-
- <p>Clients create an empty anonymous subclass. Doing so embeds the type
- parameter in the anonymous class's type hierarchy so we can reconstitute it
- at runtime despite erasure.
-
- <p>Example usage for a binding of type <code>Foo</code> annotated with
- <code>@Bar</code>:
-
- <p><code>new Key&lt;Foo&gt;(Bar.class) {</code>}.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="Key(java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">Key</span>
-      <span class="normal">(Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Constructs a new key. Derives the type from this class's type parameter.
-
- <p>Clients create an empty anonymous subclass. Doing so embeds the type
- parameter in the anonymous class's type hierarchy so we can reconstitute it
- at runtime despite erasure.
-
- <p>Example usage for a binding of type <code>Foo</code> annotated with
- <code>@Bar</code>:
-
- <p><code>new Key&lt;Foo&gt;(new Bar()) {</code>}.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="equals(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        boolean
-      </span>
-      <span class="sympad">equals</span>
-      <span class="normal">(Object o)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(com.google.inject.TypeLiteral<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type and an annotation type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(com.google.inject.TypeLiteral<T>, java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral, Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type and an annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(java.lang.Class<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(Class&lt;T&gt; type, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type and an annotation type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(java.lang.Class<T>, java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(Class&lt;T&gt; type, Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type and an annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(Type type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(java.lang.reflect.Type, java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(Type type, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type and an annotation type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(java.lang.reflect.Type, java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(Type type, Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets a key for an injection type and an annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getAnnotation()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        Annotation
-      </span>
-      <span class="sympad">getAnnotation</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getAnnotationType()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        Class&lt;?&nbsp;extends&nbsp;Annotation&gt;
-      </span>
-      <span class="sympad">getAnnotationType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the annotation type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTypeLiteral()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getTypeLiteral</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the key type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="hasAttributes()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        boolean
-      </span>
-      <span class="sympad">hasAttributes</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if this key has annotation attributes.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="hashCode()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        int
-      </span>
-      <span class="sympad">hashCode</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="ofType(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">ofType</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new key of the specified type with the same annotation as this
- key.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="ofType(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">ofType</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new key of the specified type with the same annotation as this
- key.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="ofType(java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt;
-      </span>
-      <span class="sympad">ofType</span>
-      <span class="normal">(Type type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new key of the specified type with the same annotation as this
- key.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="withoutAttributes()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">withoutAttributes</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns this key without annotation attributes, i.e. with only the
- annotation type.</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/MembersInjector.html b/latest-javadoc/com/google/inject/MembersInjector.html
deleted file mode 100755
index 348b50e..0000000
--- a/latest-javadoc/com/google/inject/MembersInjector.html
+++ /dev/null
@@ -1,553 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  MembersInjector
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>MembersInjector</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.MembersInjector&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Injects dependencies into the fields and methods on instances of type <code>T</code>. Ignores the
- presence or absence of an injectable constructor.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/MembersInjector.html#injectMembers(T)">injectMembers</a></span>(T instance)</nobr>
-        
-        <div class="jd-descrdiv">Injects dependencies into the fields and methods of <code>instance</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="injectMembers(T)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">injectMembers</span>
-      <span class="normal">(T instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Injects dependencies into the fields and methods of <code>instance</code>. Ignores the presence or
- absence of an injectable constructor.
-
- <p>Whenever Guice creates an instance, it performs this injection automatically (after first
- performing constructor injection), so if you're able to let Guice create all your objects for
- you, you'll never need to use this method.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>instance</td>
-          <td>to inject members on. May be <code>null</code>.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/Module.html b/latest-javadoc/com/google/inject/Module.html
deleted file mode 100755
index 480414f..0000000
--- a/latest-javadoc/com/google/inject/Module.html
+++ /dev/null
@@ -1,644 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Module
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>Module</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Module</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a>,
-            
-              <a href="../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a>,
-            
-              <a href="../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a>,
-            
-              <a href="../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a>,
-            
-              <a href="../../../com/google/inject/persist/PersistModule.html">PersistModule</a>,
-            
-              <a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a>,
-            
-              <a href="../../../com/google/inject/servlet/ServletModule.html">ServletModule</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></td>
-              <td class="jd-descrcol" width="100%">A support class for <code><a href="../../../com/google/inject/Module.html">Module</a></code>s which reduces repetition and results in
- a more readable configuration.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></td>
-              <td class="jd-descrcol" width="100%">Module for the common bindings for <code><a href="../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></td>
-              <td class="jd-descrcol" width="100%">Module that provides <code><a href="../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></code> as the <code><a href="../../../com/google/inject/grapher/Renderer.html">Renderer</a></code> and
- binds the other Graphviz factories.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></td>
-              <td class="jd-descrcol" width="100%">JPA provider for guice persist.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/persist/PersistModule.html">PersistModule</a></td>
-              <td class="jd-descrcol" width="100%">Install this module to add guice-persist library support for JPA persistence
- providers.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></td>
-              <td class="jd-descrcol" width="100%">A module whose configuration information is hidden from its environment by default.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></td>
-              <td class="jd-descrcol" width="100%">Configures the servlet scopes and creates bindings for the servlet API
- objects so you can inject the request, response, session, etc.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A module contributes configuration information, typically interface
- bindings, which will be used to create an <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>. A Guice-based
- application is ultimately composed of little more than a set of
- <code>Module</code>s and some bootstrapping code.
-
- <p>Your Module classes can use a more streamlined syntax by extending
- <code><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></code> rather than implementing this interface directly.
-
- <p>In addition to the bindings configured via <code><a href="../../../com/google/inject/Module.html#configure(com.google.inject.Binder)">configure(Binder)</a></code>, bindings
- will be created for all methods annotated with @<code><a href="../../../com/google/inject/Provides.html">Provides</a></code>.
- Use scope and binding annotations on these methods to configure the
- bindings.
-</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Module.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="configure(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">configure</span>
-      <span class="normal">(<a href="../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Contributes bindings and other configurations for this module to <code>binder</code>.
-
- <p><strong>Do not invoke this method directly</strong> to install submodules. Instead use
- <code><a href="../../../com/google/inject/Binder.html#install(com.google.inject.Module)">install(Module)</a></code>, which ensures that <code><a href="../../../com/google/inject/Provides.html">provider methods</a></code> are
- discovered.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/OutOfScopeException.html b/latest-javadoc/com/google/inject/OutOfScopeException.html
deleted file mode 100755
index 8c5f6c5..0000000
--- a/latest-javadoc/com/google/inject/OutOfScopeException.html
+++ /dev/null
@@ -1,1166 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  OutOfScopeException
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>OutOfScopeException</h1>
-
-
-
-  
-  
-  
-
-  
-  
-  
-
-  
-  
-  
-
-  
-    extends RuntimeException<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="5" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="4" class="jd-inheritance-class-cell">java.lang.Throwable</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Exception</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.RuntimeException</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.OutOfScopeException</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Thrown from <code><a href="../../../com/google/inject/Provider.html#get()">get()</a></code> when an attempt is made to access a scoped
- object while the scope in question is not currently active.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/OutOfScopeException.html#OutOfScopeException(java.lang.String)">OutOfScopeException</a></span>(String message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/OutOfScopeException.html#OutOfScopeException(java.lang.String, java.lang.Throwable)">OutOfScopeException</a></span>(String message, Throwable cause)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/OutOfScopeException.html#OutOfScopeException(java.lang.Throwable)">OutOfScopeException</a></span>(Throwable cause)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Throwable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Throwable-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Throwable
-
-<div id="inherited-methods-java.lang.Throwable">
-  <div id="inherited-methods-java.lang.Throwable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Throwable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">fillInStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getCause</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getLocalizedMessage</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getMessage</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            StackTraceElement[]</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initCause</span>(Throwable arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setStackTrace</span>(StackTraceElement[] arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="OutOfScopeException(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">OutOfScopeException</span>
-      <span class="normal">(String message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="OutOfScopeException(java.lang.String, java.lang.Throwable)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">OutOfScopeException</span>
-      <span class="normal">(String message, Throwable cause)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="OutOfScopeException(java.lang.Throwable)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">OutOfScopeException</span>
-      <span class="normal">(Throwable cause)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/PrivateBinder.html b/latest-javadoc/com/google/inject/PrivateBinder.html
deleted file mode 100755
index 0f74dda..0000000
--- a/latest-javadoc/com/google/inject/PrivateBinder.html
+++ /dev/null
@@ -1,1310 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  PrivateBinder
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>PrivateBinder</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../com/google/inject/Binder.html">Binder</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.PrivateBinder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Returns a binder whose configuration information is hidden from its environment by default. See
- <code><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></code> for details.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateBinder.html#expose(com.google.inject.Key<?>)">expose</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Makes the binding for <code>key</code> available to the enclosing environment </div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateBinder.html#expose(com.google.inject.TypeLiteral<?>)">expose</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Makes a binding for <code>type</code> available to the enclosing environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateBinder.html#expose(java.lang.Class<?>)">expose</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Makes a binding for <code>type</code> available to the enclosing environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateBinder.html#skipSources(java.lang.Class...)">skipSources</a></span>(Class... classesToSkip)</nobr>
-        
-        <div class="jd-descrdiv">Returns a binder that skips <code>classesToSkip</code> when identify the
- calling code.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateBinder.html#withSource(java.lang.Object)">withSource</a></span>(Object source)</nobr>
-        
-        <div class="jd-descrdiv">Returns a binder that uses <code>source</code> as the reference location for
- configuration errors.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binder" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binder-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../com/google/inject/Binder.html">com.google.inject.Binder</a>
-
-<div id="inherited-methods-com.google.inject.Binder">
-  <div id="inherited-methods-com.google.inject.Binder-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binder-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-        <div class="jd-descrdiv">Records an error message to be presented to the user at a later time.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-        <div class="jd-descrdiv">Records an error message which will be presented to the user at a later
- time.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-        <div class="jd-descrdiv">Records an exception, the full details of which will be logged, and the
- message of which will be presented to the user at a later
- time.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bind(com.google.inject.Key<T>)">bind</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bind(com.google.inject.TypeLiteral<T>)">bind</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bind(java.lang.Class<T>)">bind</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bindConstant()">bindConstant</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-        <div class="jd-descrdiv">Binds method interceptor[s] to methods matched by class and method matchers.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</nobr>
-        
-        <div class="jd-descrdiv">Registers a listener for injectable types.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, <a href="../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-        <div class="jd-descrdiv">Binds a scope to an annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</nobr>
-        
-        <div class="jd-descrdiv">Binds a type converter.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#currentStage()">currentStage</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the current stage.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#disableCircularProxies()">disableCircularProxies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Prevents Guice from constructing a Proxy when a circular dependency
- is found.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-        <div class="jd-descrdiv">Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Returns the provider used to obtain instances for the given injection key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the provider used to obtain instances for the given injection type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#install(com.google.inject.Module)">install</a></span>(<a href="../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-        <div class="jd-descrdiv">Uses the given module to configure more bindings.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#newPrivateBinder()">newPrivateBinder</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Creates a new private child environment for bindings and other configuration.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#requestInjection(com.google.inject.TypeLiteral<T>, T)">requestInjection</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type, T instance)</nobr>
-        
-        <div class="jd-descrdiv">Upon successful creation, the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> will inject instance fields
- and methods of the given object.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#requestInjection(java.lang.Object)">requestInjection</a></span>(Object instance)</nobr>
-        
-        <div class="jd-descrdiv">Upon successful creation, the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> will inject instance fields
- and methods of the given object.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection</a></span>(Class...&lt;?&gt; types)</nobr>
-        
-        <div class="jd-descrdiv">Upon successful creation, the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> will inject static fields
- and methods in the given classes.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#requireExplicitBindings()">requireExplicitBindings</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Instructs the Injector that bindings must be listed in a Module in order to
- be injected.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#skipSources(java.lang.Class...)">skipSources</a></span>(Class... classesToSkip)</nobr>
-        
-        <div class="jd-descrdiv">Returns a binder that skips <code>classesToSkip</code> when identify the
- calling code.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Binder.html#withSource(java.lang.Object)">withSource</a></span>(Object source)</nobr>
-        
-        <div class="jd-descrdiv">Returns a binder that uses <code>source</code> as the reference location for
- configuration errors.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="expose(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">expose</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Makes the binding for <code>key</code> available to the enclosing environment </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="expose(com.google.inject.TypeLiteral<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a>
-      </span>
-      <span class="sympad">expose</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Makes a binding for <code>type</code> available to the enclosing environment. Use <code><a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html#annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)">annotatedWith()</a></code> to expose <code>type</code> with a
- binding annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="expose(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a>
-      </span>
-      <span class="sympad">expose</span>
-      <span class="normal">(Class&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Makes a binding for <code>type</code> available to the enclosing environment. Use <code><a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html#annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)">annotatedWith()</a></code> to expose <code>type</code> with a
- binding annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="skipSources(java.lang.Class...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a>
-      </span>
-      <span class="sympad">skipSources</span>
-      <span class="normal">(Class... classesToSkip)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a binder that skips <code>classesToSkip</code> when identify the
- calling code. The caller's StackTraceElement is used to locate
- the source of configuration errors.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>classesToSkip</td>
-          <td>library classes that create bindings on behalf of
-      their clients.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a binder that shares its configuration with this binder.</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="withSource(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a>
-      </span>
-      <span class="sympad">withSource</span>
-      <span class="normal">(Object source)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a binder that uses <code>source</code> as the reference location for
- configuration errors. This is typically a StackTraceElement
- for <code>.java</code> source but it could any binding source, such as the
- path to a <code>.properties</code> file.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>source</td>
-          <td>any object representing the source location and has a
-     concise <code><a href="null#toString()">toString()</a></code> value</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a binder that shares its configuration with this binder</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/PrivateModule.html b/latest-javadoc/com/google/inject/PrivateModule.html
deleted file mode 100755
index 912fa99..0000000
--- a/latest-javadoc/com/google/inject/PrivateModule.html
+++ /dev/null
@@ -1,2373 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  PrivateModule
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    class
-<h1>PrivateModule</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../com/google/inject/Module.html">Module</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.PrivateModule</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A module whose configuration information is hidden from its environment by default. Only bindings
- that are explicitly exposed will be available to other modules and to the users of the injector.
- This module may expose the bindings it creates and the bindings of the modules it installs.
-
- <p>A private module can be nested within a regular module or within another private module using
- <code><a href="../../../com/google/inject/Binder.html#install(com.google.inject.Module)">install()</a></code>.  Its bindings live in a new environment that inherits bindings,
- type converters, scopes, and interceptors from the surrounding ("parent") environment.  When you
- nest multiple private modules, the result is a tree of environments where the injector's
- environment is the root.
-
- <p>Guice EDSL bindings can be exposed with <code><a href="../../../com/google/inject/PrivateModule.html#expose(java.lang.Class<?>)">expose()</a></code>. @<code><a href="../../../com/google/inject/Provides.html">Provides</a></code> bindings can be exposed with the @<code><a href="../../../com/google/inject/Exposed.html">Exposed</a></code> annotation:
-
- <pre>
- public class FooBarBazModule extends PrivateModule {
-   protected void configure() {
-     bind(Foo.class).to(RealFoo.class);
-     expose(Foo.class);
-
-     install(new TransactionalBarModule());
-     expose(Bar.class).annotatedWith(Transactional.class);
-
-     bind(SomeImplementationDetail.class);
-     install(new MoreImplementationDetailsModule());
-   }
-
-   @Provides @Exposed
-   public Baz provideBaz() {
-     return new SuperBaz();
-   }
- }
- </pre>
-
- <p>Private modules are implemented using <code><a href="../../../com/google/inject/Injector.html#createChildInjector(com.google.inject.Module...)">parent
- injectors</a></code>. When it can satisfy their dependencies, just-in-time bindings will be created in the
- root environment. Such bindings are shared among all environments in the tree.
- 
- <p>The scope of a binding is constrained to its environment. A singleton bound in a private
- module will be unique to its environment. But a binding for the same type in a different private
- module will yield a different instance.
-
- <p>A shared binding that injects the <code>Injector</code> gets the root injector, which only has
- access to bindings in the root environment. An explicit binding that injects the <code>Injector</code>
- gets access to all bindings in the child environment.
-
- <p>To promote a just-in-time binding to an explicit binding, bind it:
- <pre>
-   bind(FooImpl.class);
- </pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#PrivateModule()">PrivateModule</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#bind(com.google.inject.Key<T>)">bind</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#bind(com.google.inject.TypeLiteral<T>)">bind</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#bind(java.lang.Class<T>)">bind</a></span>(Class&lt;T&gt; clazz)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#bindConstant()">bindConstant</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation, <a href="../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#binder()">binder</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the current binder.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Creates bindings and other configurations private to this module.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes</a></span>(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#currentStage()">currentStage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            &lt;T&gt;
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#expose(com.google.inject.Key<T>)">expose</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Makes the binding for <code>key</code> available to other modules and the injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#expose(com.google.inject.TypeLiteral<?>)">expose</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Makes a binding for <code>type</code> available to other modules and the injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#expose(java.lang.Class<?>)">expose</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Makes a binding for <code>type</code> available to other modules and the injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#install(com.google.inject.Module)">install</a></span>(<a href="../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#requestInjection(java.lang.Object)">requestInjection</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection</a></span>(Class...&lt;?&gt; types)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#requireBinding(com.google.inject.Key<?>)">requireBinding</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Instructs Guice to require a binding to the given key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/PrivateModule.html#requireBinding(java.lang.Class<?>)">requireBinding</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Instructs Guice to require a binding to the given type.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Module" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Module-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../com/google/inject/Module.html">com.google.inject.Module</a>
-
-<div id="inherited-methods-com.google.inject.Module">
-  <div id="inherited-methods-com.google.inject.Module-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Module-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Module.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="PrivateModule()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">PrivateModule</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="configure(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-        synchronized 
-        void
-      </span>
-      <span class="sympad">configure</span>
-      <span class="normal">(<a href="../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Contributes bindings and other configurations for this module to <code>binder</code>.
-
- <p><strong>Do not invoke this method directly</strong> to install submodules. Instead use
- <code><a href="../../../com/google/inject/Binder.html#install(com.google.inject.Module)">install(Module)</a></code>, which ensures that <code><a href="../../../com/google/inject/Provides.html">provider methods</a></code> are
- discovered.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="addError(com.google.inject.spi.Message)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(<a href="../../../com/google/inject/spi/Message.html">Message</a> message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#addError(com.google.inject.spi.Message)">addError(Message)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="addError(java.lang.String, java.lang.Object...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(String message, Object... arguments)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#addError(java.lang.String, java.lang.Object...)">addError(String, Object[])</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="addError(java.lang.Throwable)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(Throwable t)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#addError(java.lang.Throwable)">addError(Throwable)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bind(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bind(com.google.inject.Key<T>)">bind(Key)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bind(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bind(com.google.inject.TypeLiteral<T>)">bind(TypeLiteral)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bind(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(Class&lt;T&gt; clazz)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bind(java.lang.Class<T>)">bind(Class)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindConstant()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a>
-      </span>
-      <span class="sympad">bindConstant</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bindConstant()">bindConstant()</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">bindInterceptor</span>
-      <span class="normal">(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor(com.google.inject.matcher.Matcher, com.google.inject.matcher.Matcher, org.aopalliance.intercept.MethodInterceptor[])</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">bindListener</span>
-      <span class="normal">(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener(com.google.inject.matcher.Matcher, com.google.inject.spi.TypeListener)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">bindScope</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation, <a href="../../../com/google/inject/Scope.html">Scope</a> scope)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope(Class, Scope)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="binder()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a>
-      </span>
-      <span class="sympad">binder</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the current binder.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="configure()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">configure</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates bindings and other configurations private to this module. Use <code><a href="../../../com/google/inject/PrivateModule.html#expose(java.lang.Class<?>)">expose()</a></code> to make the bindings in this module available externally.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">convertToTypes</span>
-      <span class="normal">(<a href="../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes(com.google.inject.matcher.Matcher, com.google.inject.spi.TypeConverter)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="currentStage()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/Stage.html">Stage</a>
-      </span>
-      <span class="sympad">currentStage</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#currentStage()">currentStage()</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="expose(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">expose</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Makes the binding for <code>key</code> available to other modules and the injector. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="expose(com.google.inject.TypeLiteral<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a>
-      </span>
-      <span class="sympad">expose</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Makes a binding for <code>type</code> available to other modules and the injector. Use <code><a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html#annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)">annotatedWith()</a></code> to expose <code>type</code> with a
- binding annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="expose(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a>
-      </span>
-      <span class="sympad">expose</span>
-      <span class="normal">(Class&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Makes a binding for <code>type</code> available to other modules and the injector. Use <code><a href="../../../com/google/inject/binder/AnnotatedElementBuilder.html#annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)">annotatedWith()</a></code> to expose <code>type</code> with a
- binding annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector(TypeLiteral)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector(Class)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getProvider(com.google.inject.Key<T>)">getProvider(Key)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#getProvider(java.lang.Class<T>)">getProvider(Class)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="install(com.google.inject.Module)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">install</span>
-      <span class="normal">(<a href="../../../com/google/inject/Module.html">Module</a> module)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#install(com.google.inject.Module)">install(Module)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requestInjection(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">requestInjection</span>
-      <span class="normal">(Object instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#requestInjection(java.lang.Object)">requestInjection(Object)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requestStaticInjection(java.lang.Class<?>...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">requestStaticInjection</span>
-      <span class="normal">(Class...&lt;?&gt; types)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../com/google/inject/Binder.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection(Class[])</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="requireBinding(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">requireBinding</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Instructs Guice to require a binding to the given key.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="requireBinding(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">requireBinding</span>
-      <span class="normal">(Class&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Instructs Guice to require a binding to the given type.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/ProvidedBy.html b/latest-javadoc/com/google/inject/ProvidedBy.html
deleted file mode 100755
index aa01e8f..0000000
--- a/latest-javadoc/com/google/inject/ProvidedBy.html
+++ /dev/null
@@ -1,600 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  ProvidedBy
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>ProvidedBy</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.ProvidedBy</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A pointer to the default provider type for a type.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/Provider.html b/latest-javadoc/com/google/inject/Provider.html
deleted file mode 100755
index 3debb8a..0000000
--- a/latest-javadoc/com/google/inject/Provider.html
+++ /dev/null
@@ -1,703 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Provider
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>Provider</h1>
-
-
-
-  
-  
-      implements 
-      
-        Provider&lt;T&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Provider&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;,
-            
-              <a href="../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;,
-            
-              <a href="../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</td>
-              <td class="jd-descrcol" width="100%">
-      <em>
-  This class is deprecated.
-      use <code><a href="../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code> instead.
-</em>&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A provider with dependencies on other injected types.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A Provider that is part of an extension which supports a custom
- BindingTargetVisitor.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>An object capable of providing instances of type <code>T</code>. Providers are used in numerous ways
- by Guice:
-
- <ul>
- <li>When the default means for obtaining instances (an injectable or parameterless constructor)
- is insufficient for a particular binding, the module can specify a custom <code>Provider</code>
- instead, to control exactly how Guice creates or obtains instances for the binding.
-
- <li>An implementation class may always choose to have a <code>Provider&lt;T&gt;</code> instance injected,
- rather than having a <code>T</code> injected directly.  This may give you access to multiple
- instances, instances you wish to safely mutate and discard, instances which are out of scope
- (e.g. using a <code>@RequestScoped</code> object from within a <code>@SessionScoped</code> object), or
- instances that will be initialized lazily.
-
- <li>A custom <code><a href="../../../com/google/inject/Scope.html">Scope</a></code> is implemented as a decorator of <code>Provider&lt;T&gt;</code>, which decides
- when to delegate to the backing provider and when to provide the instance some other way.
-
- <li>The <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> offers access to the <code>Provider&lt;T&gt;</code> it uses to fulfill requests
- for a given key, via the <code><a href="../../../com/google/inject/Injector.html#getProvider(com.google.inject.Key<T>)">getProvider(Key<T>)</a></code> methods.
- </ul></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Provider.html#get()">get</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Provides an instance of <code>T</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-javax.inject.Provider" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-javax.inject.Provider-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  javax.inject.Provider
-
-<div id="inherited-methods-javax.inject.Provider">
-  <div id="inherited-methods-javax.inject.Provider-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-javax.inject.Provider-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">get</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="get()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Provides an instance of <code>T</code>. Must never return <code>null</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></td>
-            <td>when an attempt is made to access a scoped object while the scope
-     in question is not currently active</td>
-        </tr>  
-        <tr>
-            <th><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></td>
-            <td>if an instance cannot be provided. Such exceptions include messages
-     and throwables to describe why provision failed.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/Provides.html b/latest-javadoc/com/google/inject/Provides.html
deleted file mode 100755
index 58c1a64..0000000
--- a/latest-javadoc/com/google/inject/Provides.html
+++ /dev/null
@@ -1,601 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Provides
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>Provides</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Provides</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Annotates methods of a <code><a href="../../../com/google/inject/Module.html">Module</a></code> to create a provider method binding. The method's return
- type is bound to it's returned value. Guice will pass dependencies to the method as parameters.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/ProvisionException.html b/latest-javadoc/com/google/inject/ProvisionException.html
deleted file mode 100755
index 95c600d..0000000
--- a/latest-javadoc/com/google/inject/ProvisionException.html
+++ /dev/null
@@ -1,1284 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  ProvisionException
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>ProvisionException</h1>
-
-
-
-  
-  
-  
-
-  
-  
-  
-
-  
-  
-  
-
-  
-    extends RuntimeException<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="5" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="4" class="jd-inheritance-class-cell">java.lang.Throwable</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Exception</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.RuntimeException</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.ProvisionException</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Indicates that there was a runtime failure while providing an instance.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ProvisionException.html#ProvisionException(java.lang.Iterable<com.google.inject.spi.Message>)">ProvisionException</a></span>(Iterable&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt; messages)</nobr>
-        
-        <div class="jd-descrdiv">Creates a ConfigurationException containing <code>messages</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ProvisionException.html#ProvisionException(java.lang.String)">ProvisionException</a></span>(String message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ProvisionException.html#ProvisionException(java.lang.String, java.lang.Throwable)">ProvisionException</a></span>(String message, Throwable cause)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ProvisionException.html#getErrorMessages()">getErrorMessages</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns messages for the errors that caused this exception.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/ProvisionException.html#getMessage()">getMessage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Throwable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Throwable-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Throwable
-
-<div id="inherited-methods-java.lang.Throwable">
-  <div id="inherited-methods-java.lang.Throwable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Throwable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">fillInStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getCause</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getLocalizedMessage</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getMessage</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            StackTraceElement[]</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initCause</span>(Throwable arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setStackTrace</span>(StackTraceElement[] arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="ProvisionException(java.lang.Iterable<com.google.inject.spi.Message>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ProvisionException</span>
-      <span class="normal">(Iterable&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt; messages)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a ConfigurationException containing <code>messages</code>. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="ProvisionException(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ProvisionException</span>
-      <span class="normal">(String message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="ProvisionException(java.lang.String, java.lang.Throwable)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ProvisionException</span>
-      <span class="normal">(String message, Throwable cause)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getErrorMessages()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../com/google/inject/spi/Message.html">Message</a>&gt;
-      </span>
-      <span class="sympad">getErrorMessages</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns messages for the errors that caused this exception. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMessage()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getMessage</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/Scope.html b/latest-javadoc/com/google/inject/Scope.html
deleted file mode 100755
index ca02803..0000000
--- a/latest-javadoc/com/google/inject/Scope.html
+++ /dev/null
@@ -1,627 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Scope
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>Scope</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Scope</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A scope is a level of visibility that instances provided by Guice may have.
- By default, an instance created by the <code><a href="../../../com/google/inject/Injector.html">Injector</a></code> has <i>no scope</i>,
- meaning it has no state from the framework's perspective -- the
- <code>Injector</code> creates it, injects it once into the class that required it,
- and then immediately forgets it. Associating a scope with a particular
- binding allows the created instance to be "remembered" and possibly used
- again for other injections.
-
- <p>An example of a scope is <code><a href="../../../com/google/inject/Scopes.html#SINGLETON">SINGLETON</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Scope.html#scope(com.google.inject.Key<T>, com.google.inject.Provider<T>)">scope</a></span>(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key, <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt; unscoped)</nobr>
-        
-        <div class="jd-descrdiv">Scopes a provider.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Scope.html#toString()">toString</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">A short but useful description of this scope.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="scope(com.google.inject.Key<T>, com.google.inject.Provider<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">scope</span>
-      <span class="normal">(<a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key, <a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt; unscoped)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Scopes a provider. The returned provider returns objects from this scope.
- If an object does not exist in this scope, the provider can use the given
- unscoped provider to retrieve one.
-
- <p>Scope implementations are strongly encouraged to override
- <code><a href="null#toString()">toString()</a></code> in the returned provider and include the backing
- provider's <code>toString()</code> output.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>key</td>
-          <td>binding key</td>
-        </tr>
-        <tr>
-          <th>unscoped</td>
-          <td>locates an instance when one doesn't already exist in this
-  scope.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a new provider which only delegates to the given unscoped provider
-  when an instance of the requested object doesn't already exist in this
-  scope
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>A short but useful description of this scope.  For comparison, the standard
- scopes that ship with guice use the descriptions
- <code>"Scopes.SINGLETON"</code>, <code>"ServletScopes.SESSION"</code> and
- <code>"ServletScopes.REQUEST"</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/ScopeAnnotation.html b/latest-javadoc/com/google/inject/ScopeAnnotation.html
deleted file mode 100755
index 5c6e16a..0000000
--- a/latest-javadoc/com/google/inject/ScopeAnnotation.html
+++ /dev/null
@@ -1,609 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  ScopeAnnotation
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>ScopeAnnotation</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.ScopeAnnotation</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Annotates annotations which are used for scoping. Only one such annotation
- may apply to a single implementation class. You must also annotate scope
- annotations with <code>@Retention(RUNTIME)</code>. For example:
-
- <pre>
-   <code>@</code>Retention(RUNTIME)
-   <code>@</code>Target(TYPE, METHOD)
-   <code>@</code>ScopeAnnotation
-   public <code>@</code>interface SessionScoped {}
- </pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/Scopes.html b/latest-javadoc/com/google/inject/Scopes.html
deleted file mode 100755
index 1ae4bbf..0000000
--- a/latest-javadoc/com/google/inject/Scopes.html
+++ /dev/null
@@ -1,896 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Scopes
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-  <a href="#constants">Constants</a>
-  
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>Scopes</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Scopes</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Built-in scope implementations.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-
-    
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><a href="../../../com/google/inject/Scope.html">Scope</a></td>
-        <td class="jd-linkcol"><a href="../../../com/google/inject/Scopes.html#NO_SCOPE">NO_SCOPE</a></td>
-        <td class="jd-descrcol" width="100%">No scope; the same as not applying any scope at all.</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><a href="../../../com/google/inject/Scope.html">Scope</a></td>
-        <td class="jd-linkcol"><a href="../../../com/google/inject/Scopes.html#SINGLETON">SINGLETON</a></td>
-        <td class="jd-descrcol" width="100%">One instance per <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>.</td>
-    </tr>
-    
-    
-
-</table>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Scopes.html#isSingleton(com.google.inject.Binding<?>)">isSingleton</a></span>(<a href="../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Returns true if <code>binding</code> is singleton-scoped.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Constants</h2>
-
-
-
-
-<A NAME="NO_SCOPE"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../com/google/inject/Scope.html">Scope</a>
-      </span>
-        NO_SCOPE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>No scope; the same as not applying any scope at all.  Each time the
- Injector obtains an instance of an object with "no scope", it injects this
- instance then immediately forgets it.  When the next request for the same
- binding arrives it will need to obtain the instance over again.
-
- <p>This exists only in case a class has been annotated with a scope
- annotation such as <code><a href="../../../com/google/inject/Singleton.html">@Singleton</a></code>, and you need to override
- this to "no scope" in your binding.</p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="SINGLETON"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../com/google/inject/Scope.html">Scope</a>
-      </span>
-        SINGLETON
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>One instance per <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>. Also see <code>@</code><code><a href="../../../com/google/inject/Singleton.html">Singleton</a></code>.
-</p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="isSingleton(com.google.inject.Binding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        boolean
-      </span>
-      <span class="sympad">isSingleton</span>
-      <span class="normal">(<a href="../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if <code>binding</code> is singleton-scoped. If the binding is a <code><a href="../../../com/google/inject/spi/LinkedKeyBinding.html">linked key binding</a></code> and belongs to an injector (ie. it
- was retrieved via <code><a href="../../../com/google/inject/Injector.html#getBinding(com.google.inject.Key<T>)">Injector.getBinding()</a></code>), then this method will
- also true if the target binding is singleton-scoped.</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/Singleton.html b/latest-javadoc/com/google/inject/Singleton.html
deleted file mode 100755
index 95977f2..0000000
--- a/latest-javadoc/com/google/inject/Singleton.html
+++ /dev/null
@@ -1,601 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Singleton
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>Singleton</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Singleton</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Apply this to implementation classes when you want only one instance
- (per <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>) to be reused for all injections for that binding.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/Stage.html b/latest-javadoc/com/google/inject/Stage.html
deleted file mode 100755
index 70c87d3..0000000
--- a/latest-javadoc/com/google/inject/Stage.html
+++ /dev/null
@@ -1,1256 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  Stage
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-  <a href="#enumconstants">Enums</a>
-  
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    enum
-<h1>Stage</h1>
-
-
-
-  
-  
-  
-
-  
-    extends Enum&lt;E&nbsp;extends&nbsp;Enum&lt;E&gt;&gt;<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Enum&lt;E&nbsp;extends&nbsp;java.lang.Enum&lt;E&gt;&gt;</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.Stage</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>The stage we're running in.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../com/google/inject/Stage.html">Stage</a>&nbsp;</td>
-        <td class="jd-linkcol">DEVELOPMENT&nbsp;</td>
-        <td class="jd-descrcol" width="100%">We want fast startup times at the expense of runtime performance and some up front error
- checking.&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../com/google/inject/Stage.html">Stage</a>&nbsp;</td>
-        <td class="jd-linkcol">PRODUCTION&nbsp;</td>
-        <td class="jd-descrcol" width="100%">We want to catch errors as early as possible and take performance hits up front.&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../com/google/inject/Stage.html">Stage</a>&nbsp;</td>
-        <td class="jd-linkcol">TOOL&nbsp;</td>
-        <td class="jd-descrcol" width="100%">We're running in a tool (an IDE plugin for example).&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Stage.html#valueOf(java.lang.String)">valueOf</a></span>(String name)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            static
-            
-            <a href="../../../com/google/inject/Stage.html">Stage[]</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/Stage.html#values()">values</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Enum" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Enum-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Enum
-
-<div id="inherited-methods-java.lang.Enum">
-  <div id="inherited-methods-java.lang.Enum-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Enum-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(E arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;E&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getDeclaringClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">name</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">ordinal</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&nbsp;extends&nbsp;Enum&lt;T&gt;&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">valueOf</span>(Class&lt;T&gt; arg0, String arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Comparable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Comparable-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.Comparable
-
-<div id="inherited-methods-java.lang.Comparable">
-  <div id="inherited-methods-java.lang.Comparable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Comparable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(T arg0)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Enum Values</h2>
-
-
-
-
-<A NAME="DEVELOPMENT"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../com/google/inject/Stage.html">Stage</a>
-      </span>
-        DEVELOPMENT
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>We want fast startup times at the expense of runtime performance and some up front error
- checking.
-</p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="PRODUCTION"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../com/google/inject/Stage.html">Stage</a>
-      </span>
-        PRODUCTION
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>We want to catch errors as early as possible and take performance hits up front.
-</p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="TOOL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../com/google/inject/Stage.html">Stage</a>
-      </span>
-        TOOL
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>We're running in a tool (an IDE plugin for example). We need binding meta data but not a
- functioning Injector. Do not inject members of instances. Do not load eager singletons. Do as
- little as possible so our tools run nice and snappy. Injectors created in this stage cannot
- be used to satisfy injections.
-</p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="valueOf(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/Stage.html">Stage</a>
-      </span>
-      <span class="sympad">valueOf</span>
-      <span class="normal">(String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="values()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-         
-         
-        <a href="../../../com/google/inject/Stage.html">Stage[]</a>
-      </span>
-      <span class="sympad">values</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/TypeLiteral.html b/latest-javadoc/com/google/inject/TypeLiteral.html
deleted file mode 100755
index a398b84..0000000
--- a/latest-javadoc/com/google/inject/TypeLiteral.html
+++ /dev/null
@@ -1,1482 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  TypeLiteral
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-  <a href="#proctors">Protected Ctors</a>
-  
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>TypeLiteral</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.TypeLiteral&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Represents a generic type <code>T</code>. Java doesn't yet provide a way to
- represent generic types, so this class does. Forces clients to create a
- subclass of this class which enables retrieval the type information even at
- runtime.
-
- <p>For example, to create a type literal for <code>List&lt;String&gt;</code>, you can
- create an empty anonymous inner class:
-
- <p>
- <code>TypeLiteral&lt;List&lt;String&gt;&gt; list = new TypeLiteral&lt;List&lt;String&gt;&gt;() {</code>;}
-
- <p>Along with modeling generic types, this class can resolve type parameters.
- For example, to figure out what type <code>keySet()</code> returns on a <code>Map&lt;Integer, String&gt;</code>, use this code:<pre>   <code>TypeLiteral&lt;Map&lt;Integer, String&gt;&gt; mapType
-       = new TypeLiteral&lt;Map&lt;Integer, String&gt;&gt;() {</code>;
-   TypeLiteral<?> keySetType
-       = mapType.getReturnType(Map.class.getMethod("keySet"));
-   System.out.println(keySetType); // prints "Set<Integer>"}</pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="proctors" class="jd-sumtable"><tr><th colspan="12">Protected Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#TypeLiteral()">TypeLiteral</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Constructs a new type literal.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#equals(java.lang.Object)">equals</a></span>(Object o)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#get(java.lang.Class<T>)">get</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Gets type literal for the given <code>Class</code> instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#get(java.lang.reflect.Type)">get</a></span>(Type type)</nobr>
-        
-        <div class="jd-descrdiv">Gets type literal for the given <code>Type</code> instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            List&lt;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#getExceptionTypes(java.lang.reflect.Member)">getExceptionTypes</a></span>(Member methodOrConstructor)</nobr>
-        
-        <div class="jd-descrdiv">Returns the resolved generic exception types thrown by <code>constructor</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#getFieldType(java.lang.reflect.Field)">getFieldType</a></span>(Field field)</nobr>
-        
-        <div class="jd-descrdiv">Returns the resolved generic type of <code>field</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            List&lt;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#getParameterTypes(java.lang.reflect.Member)">getParameterTypes</a></span>(Member methodOrConstructor)</nobr>
-        
-        <div class="jd-descrdiv">Returns the resolved generic parameter types of <code>methodOrConstructor</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&nbsp;super&nbsp;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#getRawType()">getRawType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the raw (non-generic) type for this type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#getReturnType(java.lang.reflect.Method)">getReturnType</a></span>(Method method)</nobr>
-        
-        <div class="jd-descrdiv">Returns the resolved generic return type of <code>method</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#getSupertype(java.lang.Class<?>)">getSupertype</a></span>(Class&lt;?&gt; supertype)</nobr>
-        
-        <div class="jd-descrdiv">Returns the generic form of <code>supertype</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Type</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#getType()">getType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets underlying <code>Type</code> instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#hashCode()">hashCode</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../com/google/inject/TypeLiteral.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-<h2>Protected Constructors</h2>
-
-
-
-<A NAME="TypeLiteral()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">TypeLiteral</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Constructs a new type literal. Derives represented class from type
- parameter.
-
- <p>Clients create an empty anonymous subclass. Doing so embeds the type
- parameter in the anonymous class's type hierarchy so we can reconstitute it
- at runtime despite erasure.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="equals(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        boolean
-      </span>
-      <span class="sympad">equals</span>
-      <span class="normal">(Object o)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets type literal for the given <code>Class</code> instance.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(Type type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets type literal for the given <code>Type</code> instance.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getExceptionTypes(java.lang.reflect.Member)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        List&lt;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getExceptionTypes</span>
-      <span class="normal">(Member methodOrConstructor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the resolved generic exception types thrown by <code>constructor</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>methodOrConstructor</td>
-          <td>a method or constructor defined by this or any supertype.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getFieldType(java.lang.reflect.Field)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;
-      </span>
-      <span class="sympad">getFieldType</span>
-      <span class="normal">(Field field)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the resolved generic type of <code>field</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>field</td>
-          <td>a field defined by this or any superclass.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getParameterTypes(java.lang.reflect.Member)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        List&lt;<a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getParameterTypes</span>
-      <span class="normal">(Member methodOrConstructor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the resolved generic parameter types of <code>methodOrConstructor</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>methodOrConstructor</td>
-          <td>a method or constructor defined by this or any supertype.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getRawType()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        Class&lt;?&nbsp;super&nbsp;T&gt;
-      </span>
-      <span class="sympad">getRawType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the raw (non-generic) type for this type.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getReturnType(java.lang.reflect.Method)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;
-      </span>
-      <span class="sympad">getReturnType</span>
-      <span class="normal">(Method method)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the resolved generic return type of <code>method</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>method</td>
-          <td>a method defined by this or any supertype.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getSupertype(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;
-      </span>
-      <span class="sympad">getSupertype</span>
-      <span class="normal">(Class&lt;?&gt; supertype)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the generic form of <code>supertype</code>. For example, if this is <code>ArrayList&lt;String&gt;</code>, this returns <code>Iterable&lt;String&gt;</code> given the input <code>Iterable.class</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>supertype</td>
-          <td>a superclass of, or interface implemented by, this.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getType()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        Type
-      </span>
-      <span class="sympad">getType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets underlying <code>Type</code> instance.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="hashCode()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        int
-      </span>
-      <span class="sympad">hashCode</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-        final 
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/assistedinject/Assisted.html b/latest-javadoc/com/google/inject/assistedinject/Assisted.html
deleted file mode 100755
index 487985b..0000000
--- a/latest-javadoc/com/google/inject/assistedinject/Assisted.html
+++ /dev/null
@@ -1,572 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Assisted
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>Assisted</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.assistedinject.Assisted</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Annotates an injected parameter or field whose value comes from an argument to a factory method.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/assistedinject/AssistedInject.html b/latest-javadoc/com/google/inject/assistedinject/AssistedInject.html
deleted file mode 100755
index 0e4daba..0000000
--- a/latest-javadoc/com/google/inject/assistedinject/AssistedInject.html
+++ /dev/null
@@ -1,591 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  AssistedInject
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>AssistedInject</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.assistedinject.AssistedInject</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p><p>
- When used in tandem with <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>, constructors annotated with 
- <code>@AssistedInject</code> indicate that multiple constructors can be injected, each with different
- parameters. AssistedInject annotations should not be mixed with @<code><a href="../../../../com/google/inject/Inject.html">Inject</a></code>
- annotations. The assisted parameters must exactly match one corresponding factory method within
- the factory interface, but the parameters do not need to be in the same order. Constructors
- annotated with AssistedInject <b>are</b> created by Guice and receive all the benefits
- (such as AOP).
- 
- <p>
- <strong>Obsolete Usage:</strong> When used in tandem with <code><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a></code>, constructors
- annotated with <code>@AssistedInject</code> trigger a "backwards compatibility mode". The assisted
- parameters must exactly match one corresponding factory method within the factory interface and
- all must be in the same order as listed in the factory. In this backwards compatable mode,
- constructors annotated with AssistedInject <b>are not</b> created by Guice and thus receive
- none of the benefits.
- 
- <p>
- Constructor parameters must be either supplied by the factory interface and marked with
- <code>@Assisted</code>, or they must be injectable.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/assistedinject/AssistedInjectBinding.html b/latest-javadoc/com/google/inject/assistedinject/AssistedInjectBinding.html
deleted file mode 100755
index 96f02c4..0000000
--- a/latest-javadoc/com/google/inject/assistedinject/AssistedInjectBinding.html
+++ /dev/null
@@ -1,560 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  AssistedInjectBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>AssistedInjectBinding</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.assistedinject.AssistedInjectBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding for a factory created by FactoryModuleBuilder.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html#getAssistedMethods()">getAssistedMethods</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an <code><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></code> for each method in the factory.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the <code><a href="../../../../com/google/inject/Key.html">Key</a></code> for the factory binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getAssistedMethods()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Collection&lt;<a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a>&gt;
-      </span>
-      <span class="sympad">getAssistedMethods</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an <code><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></code> for each method in the factory. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getKey()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the <code><a href="../../../../com/google/inject/Key.html">Key</a></code> for the factory binding. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/assistedinject/AssistedInjectTargetVisitor.html b/latest-javadoc/com/google/inject/assistedinject/AssistedInjectTargetVisitor.html
deleted file mode 100755
index 16cc4e6..0000000
--- a/latest-javadoc/com/google/inject/assistedinject/AssistedInjectTargetVisitor.html
+++ /dev/null
@@ -1,743 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  AssistedInjectTargetVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>AssistedInjectTargetVisitor</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.assistedinject.AssistedInjectTargetVisitor&lt;T,&nbsp;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A visitor for the AssistedInject extension.
- <p>
- If your <code><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> implements this interface, bindings created by using
- <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code> will be visited through this interface.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html#visit(com.google.inject.assistedinject.AssistedInjectBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; assistedInjectBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visits an <code><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a></code> created through <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.BindingTargetVisitor" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">com.google.inject.spi.BindingTargetVisitor</a>
-
-<div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor">
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConstructorBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a constructor binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding created from converting a bound instance to a new type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ExposedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a key exposed from an enclosed private environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.InstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a linked key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.UntargettedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an untargetted binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visit(com.google.inject.assistedinject.AssistedInjectBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; assistedInjectBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visits an <code><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a></code> created through <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/assistedinject/AssistedMethod.html b/latest-javadoc/com/google/inject/assistedinject/AssistedMethod.html
deleted file mode 100755
index 206d0e1..0000000
--- a/latest-javadoc/com/google/inject/assistedinject/AssistedMethod.html
+++ /dev/null
@@ -1,672 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  AssistedMethod
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>AssistedMethod</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.assistedinject.AssistedMethod</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Details about how a method in an assisted inject factory will be assisted.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns all non-assisted dependencies required to construct and inject
- the implementation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Method</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html#getFactoryMethod()">getFactoryMethod</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the factory method that is being assisted.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Constructor&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html#getImplementationConstructor()">getImplementationConstructor</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the constructor that will be used to construct instances of the 
- implementation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html#getImplementationType()">getImplementationType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the implementation type that will be created when the method is
- used.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getDependencies()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getDependencies</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns all non-assisted dependencies required to construct and inject
- the implementation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getFactoryMethod()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Method
-      </span>
-      <span class="sympad">getFactoryMethod</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the factory method that is being assisted.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getImplementationConstructor()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Constructor&lt;?&gt;
-      </span>
-      <span class="sympad">getImplementationConstructor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the constructor that will be used to construct instances of the 
- implementation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getImplementationType()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;
-      </span>
-      <span class="sympad">getImplementationType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the implementation type that will be created when the method is
- used.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/assistedinject/FactoryModuleBuilder.html b/latest-javadoc/com/google/inject/assistedinject/FactoryModuleBuilder.html
deleted file mode 100755
index c4db826..0000000
--- a/latest-javadoc/com/google/inject/assistedinject/FactoryModuleBuilder.html
+++ /dev/null
@@ -1,1809 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  FactoryModuleBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>FactoryModuleBuilder</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.assistedinject.FactoryModuleBuilder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Provides a factory that combines the caller's arguments with injector-supplied values to
- construct objects.
-
- <h3>Defining a factory</h3>
- 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.
-
- <pre>public interface PaymentFactory {
-   Payment create(Date startDate, Money amount);
- }</pre>
-
- You can name your factory methods whatever you like, such as <i>create</i>, <i>createPayment</i>
- or <i>newPayment</i>.
-
- <h3>Creating a type that accepts factory parameters</h3>
- <code>constructedType</code> is a concrete class with an @<code><a href="../../../../com/google/inject/Inject.html">Inject</a></code>-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 @<code><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></code> annotation. This serves to document that the
- parameter is not bound by your application's modules.
-
- <pre>public class RealPayment implements Payment {
-   @Inject
-   public RealPayment(
-      CreditService creditService,
-      AuthService authService,
-      <strong>@Assisted Date startDate</strong>,
-      <strong>@Assisted Money amount</strong>) {
-     ...
-   }
- }</pre>
- 
- <h3>Multiple factory methods for the same type</h3>
- 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
- @<code><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></code>, in order to match the different parameters types of the
- factory methods. 
- 
- <pre>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,
-     <strong>@Assisted Date startDate</strong>,
-     <strong>@Assisted Money amount</strong>) {
-     ...
-   }
-   
-  @AssistedInject
-   public RealPayment(
-      CreditService creditService,
-      AuthService authService,
-     <strong>@Assisted Money amount</strong>) {
-     ...
-   }   
- }</pre> 
-
- <h3>Configuring simple factories</h3>
- In your <code><a href="../../../../com/google/inject/Module.html">module</a></code>, install a <code>FactoryModuleBuilder</code> that creates the
- factory:
-
- <pre>install(new FactoryModuleBuilder()
-     .implement(Payment.class, RealPayment.class)
-     .build(PaymentFactory.class);</pre>
-
- As a side-effect of this binding, Guice will inject the factory to initialize it for use. The
- factory cannot be used until the injector has been initialized.
-
- <h3>Using the factory</h3>
- 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.
-
- <pre>public class PaymentAction {
-   @Inject private PaymentFactory paymentFactory;
-
-   public void doPayment(Money amount) {
-     Payment payment = paymentFactory.create(new Date(), amount);
-     payment.apply();
-   }
- }</pre>
-
- <h3>Making parameter types distinct</h3>
- The types of the factory method's parameters must be distinct. To use multiple parameters of
- the same type, use a named @<code><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></code> annotation to disambiguate the
- parameters. The names must be applied to the factory method's parameters:
-
- <pre>public interface PaymentFactory {
-   Payment create(
-       <strong>@Assisted("startDate")</strong> Date startDate,
-       <strong>@Assisted("dueDate")</strong> Date dueDate,
-       Money amount);
- } </pre>
-
- ...and to the concrete type's constructor parameters:
-
- <pre>public class RealPayment implements Payment {
-   @Inject
-   public RealPayment(
-      CreditService creditService,
-      AuthService authService,
-      <strong>@Assisted("startDate")</strong> Date startDate,
-      <strong>@Assisted("dueDate")</strong> Date dueDate,
-      <strong>@Assisted</strong> Money amount) {
-     ...
-   }
- }</pre>
-
- <h3>Values are created by Guice</h3>
- 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.
-
- <h3>More configuration options</h3>
- 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:
- <p/>
- If you just want to return the types specified in the factory, do not configure any
- implementations:
-
- <pre>public interface FruitFactory {
-   Apple getApple(Color color);
- }
- ...
- protected void configure() {
-   install(new FactoryModuleBuilder().build(FruitFactory.class));
- }</pre>
-
- Note that any type returned by the factory in this manner needs to be an implementation class.
- <p/>
- To return two different implementations for the same interface from your factory, use binding
- annotations on your return types:
-
- <pre>interface CarFactory {
-   @Named("fast") Car getFastCar(Color color);
-   @Named("clean") Car getCleanCar(Color color);
- }
- ...
- protected void configure() {
-   install(new FactoryModuleBuilder()
-       .implement(Car.class, Names.named("fast"), Porsche.class)
-       .implement(Car.class, Names.named("clean"), Prius.class)
-       .build(CarFactory.class));
- }</pre>
- 
- <h3>Implementation limitations</h3>
- As a limitation of the implementation, it is prohibited to declare a factory method that
- accepts a <code>Provider</code> as one of its arguments.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#FactoryModuleBuilder()">FactoryModuleBuilder</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;F&gt;
-            <a href="../../../../com/google/inject/Module.html">Module</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#build(com.google.inject.Key<F>)">build</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;F&gt; factoryInterface)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;F&gt;
-            <a href="../../../../com/google/inject/Module.html">Module</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#build(com.google.inject.TypeLiteral<F>)">build</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;F&gt; factoryInterface)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;F&gt;
-            <a href="../../../../com/google/inject/Module.html">Module</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#build(java.lang.Class<F>)">build</a></span>(Class&lt;F&gt; factoryInterface)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(com.google.inject.Key<T>, com.google.inject.TypeLiteral<? extends T>)">implement</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(com.google.inject.Key<T>, java.lang.Class<? extends T>)">implement</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(com.google.inject.TypeLiteral<T>, com.google.inject.TypeLiteral<? extends T>)">implement</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(com.google.inject.TypeLiteral<T>, java.lang.Class<? extends T>)">implement</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(com.google.inject.TypeLiteral<T>, java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.TypeLiteral<? extends T>)">implement</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(com.google.inject.TypeLiteral<T>, java.lang.Class<? extends java.lang.annotation.Annotation>, java.lang.Class<? extends T>)">implement</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(com.google.inject.TypeLiteral<T>, java.lang.annotation.Annotation, com.google.inject.TypeLiteral<? extends T>)">implement</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Annotation annotation, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(com.google.inject.TypeLiteral<T>, java.lang.annotation.Annotation, java.lang.Class<? extends T>)">implement</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Annotation annotation, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(java.lang.Class<T>, com.google.inject.TypeLiteral<? extends T>)">implement</a></span>(Class&lt;T&gt; source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(java.lang.Class<T>, java.lang.Class<? extends T>)">implement</a></span>(Class&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(java.lang.Class<T>, java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.TypeLiteral<? extends T>)">implement</a></span>(Class&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(java.lang.Class<T>, java.lang.Class<? extends java.lang.annotation.Annotation>, java.lang.Class<? extends T>)">implement</a></span>(Class&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(java.lang.Class<T>, java.lang.annotation.Annotation, com.google.inject.TypeLiteral<? extends T>)">implement</a></span>(Class&lt;T&gt; source, Annotation annotation, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html#implement(java.lang.Class<T>, java.lang.annotation.Annotation, java.lang.Class<? extends T>)">implement</a></span>(Class&lt;T&gt; source, Annotation annotation, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</nobr>
-        
-        <div class="jd-descrdiv">See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="FactoryModuleBuilder()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">FactoryModuleBuilder</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="build(com.google.inject.Key<F>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-      <span class="sympad">build</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;F&gt; factoryInterface)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="build(com.google.inject.TypeLiteral<F>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-      <span class="sympad">build</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;F&gt; factoryInterface)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="build(java.lang.Class<F>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-      <span class="sympad">build</span>
-      <span class="normal">(Class&lt;F&gt; factoryInterface)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(com.google.inject.Key<T>, com.google.inject.TypeLiteral<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(com.google.inject.Key<T>, java.lang.Class<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(com.google.inject.TypeLiteral<T>, com.google.inject.TypeLiteral<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(com.google.inject.TypeLiteral<T>, java.lang.Class<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(com.google.inject.TypeLiteral<T>, java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.TypeLiteral<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(com.google.inject.TypeLiteral<T>, java.lang.Class<? extends java.lang.annotation.Annotation>, java.lang.Class<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(com.google.inject.TypeLiteral<T>, java.lang.annotation.Annotation, com.google.inject.TypeLiteral<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Annotation annotation, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(com.google.inject.TypeLiteral<T>, java.lang.annotation.Annotation, java.lang.Class<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; source, Annotation annotation, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(java.lang.Class<T>, com.google.inject.TypeLiteral<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(Class&lt;T&gt; source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(java.lang.Class<T>, java.lang.Class<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(Class&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(java.lang.Class<T>, java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.TypeLiteral<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(Class&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(java.lang.Class<T>, java.lang.Class<? extends java.lang.annotation.Annotation>, java.lang.Class<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(Class&lt;T&gt; source, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(java.lang.Class<T>, java.lang.annotation.Annotation, com.google.inject.TypeLiteral<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(Class&lt;T&gt; source, Annotation annotation, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="implement(java.lang.Class<T>, java.lang.annotation.Annotation, java.lang.Class<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-      </span>
-      <span class="sympad">implement</span>
-      <span class="normal">(Class&lt;T&gt; source, Annotation annotation, Class&lt;?&nbsp;extends&nbsp;T&gt; target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the factory configuration examples at <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/assistedinject/FactoryProvider.html b/latest-javadoc/com/google/inject/assistedinject/FactoryProvider.html
deleted file mode 100755
index 1e89ff9..0000000
--- a/latest-javadoc/com/google/inject/assistedinject/FactoryProvider.html
+++ /dev/null
@@ -1,1172 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  FactoryProvider
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>FactoryProvider</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt; 
-      
-        <a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.assistedinject.FactoryProvider&lt;F&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-<p>
-  <p class="caution">
-      <strong>
-  This class is deprecated.</strong><br/> use <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code> instead.
-
-  </p>
-
-<h2>Class Overview</h2>
-<p><strong>Obsolete.</strong> Prefer <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code> for its more concise API and
- additional capability.
-
- <p>Provides a factory that combines the caller's arguments with injector-supplied values to
- construct objects.
-
- <h3>Defining a factory</h3>
- 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.
- <pre>public interface PaymentFactory {
-   Payment create(Date startDate, Money amount);
- }</pre>
- You can name your factory methods whatever you like, such as <i>create</i>, <i>createPayment</i>
- or <i>newPayment</i>.
-
- <h3>Creating a type that accepts factory parameters</h3>
- <code>constructedType</code> is a concrete class with an @<code><a href="../../../../com/google/inject/Inject.html">Inject</a></code>-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 @<code><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></code> annotation. This serves to document that the parameter
- is not bound by your application's modules.
- <pre>public class RealPayment implements Payment {
-   @Inject
-   public RealPayment(
-      CreditService creditService,
-      AuthService authService,
-      <strong>@Assisted Date startDate</strong>,
-      <strong>@Assisted Money amount</strong>) {
-     ...
-   }
- }</pre>
- Any parameter that permits a null value should also be annotated <code>@Nullable</code>.
-
- <h3>Configuring factories</h3>
- In your <code><a href="../../../../com/google/inject/Module.html">module</a></code>, bind the factory interface to the returned
- factory:
- <pre>bind(PaymentFactory.class).toProvider(
-     FactoryProvider.newFactory(PaymentFactory.class, RealPayment.class));</pre>
- As a side-effect of this binding, Guice will inject the factory to initialize it for use. The
- factory cannot be used until the injector has been initialized.
-
- <h3>Using the factory</h3>
- 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.
- <pre>public class PaymentAction {
-   @Inject private PaymentFactory paymentFactory;
-
-   public void doPayment(Money amount) {
-     Payment payment = paymentFactory.create(new Date(), amount);
-     payment.apply();
-   }
- }</pre>
-
- <h3>Making parameter types distinct</h3>
- The types of the factory method's parameters must be distinct. To use multiple parameters of
- the same type, use a named @<code><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></code> annotation to disambiguate the
- parameters. The names must be applied to the factory method's parameters:
-
- <pre>public interface PaymentFactory {
-   Payment create(
-       <strong>@Assisted("startDate")</strong> Date startDate,
-       <strong>@Assisted("dueDate")</strong> Date dueDate,
-       Money amount);
- } </pre>
- ...and to the concrete type's constructor parameters:
- <pre>public class RealPayment implements Payment {
-   @Inject
-   public RealPayment(
-      CreditService creditService,
-      AuthService authService,
-      <strong>@Assisted("startDate")</strong> Date startDate,
-      <strong>@Assisted("dueDate")</strong> Date dueDate,
-      <strong>@Assisted</strong> Money amount) {
-     ...
-   }
- }</pre>
-
- <h3>Values are created by Guice</h3>
- 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.
-
- <h3>Backwards compatibility using @AssistedInject</h3>
- Instead of the @Inject annotation, you may annotate the constructed classes with
- @<code><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></code>. This triggers a limited backwards-compatability mode.
-
- <p>Instead of matching factory method arguments to constructor parameters using their names, the
- <strong>parameters are matched by their order</strong>. The first factory method argument is
- used for the first @Assisted constructor parameter, etc.. Annotation names have no
- effect.
-
- <p>Returned values are <strong>not created by Guice</strong>. These types are not eligible for
- method interception. They do receive post-construction member injection.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            F</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html#get()">get</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Provides an instance of <code>T</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the known dependencies for this type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;F&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;F&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html#newFactory(com.google.inject.TypeLiteral<F>, com.google.inject.TypeLiteral<?>)">newFactory</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;F&gt; factoryType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; implementationType)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;F&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;F&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html#newFactory(java.lang.Class<F>, java.lang.Class<?>)">newFactory</a></span>(Class&lt;F&gt; factoryType, Class&lt;?&gt; implementationType)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Provider" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Provider-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Provider.html">com.google.inject.Provider</a>
-
-<div id="inherited-methods-com.google.inject.Provider">
-  <div id="inherited-methods-com.google.inject.Provider-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Provider-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Provider.html#get()">get</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Provides an instance of <code>T</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.HasDependencies" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.HasDependencies-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/HasDependencies.html">com.google.inject.spi.HasDependencies</a>
-
-<div id="inherited-methods-com.google.inject.spi.HasDependencies">
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/HasDependencies.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the known dependencies for this type.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-javax.inject.Provider" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-javax.inject.Provider-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  javax.inject.Provider
-
-<div id="inherited-methods-javax.inject.Provider">
-  <div id="inherited-methods-javax.inject.Provider-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-javax.inject.Provider-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">get</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="get()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        F
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Provides an instance of <code>T</code>. Must never return <code>null</code>.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getDependencies()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getDependencies</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the known dependencies for this type. If this has dependencies whose values are not
- known statically, a dependency for the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> will be
- included in the returned set.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="newFactory(com.google.inject.TypeLiteral<F>, com.google.inject.TypeLiteral<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;F&gt;
-      </span>
-      <span class="sympad">newFactory</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;F&gt; factoryType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; implementationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newFactory(java.lang.Class<F>, java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;F&gt;
-      </span>
-      <span class="sympad">newFactory</span>
-      <span class="normal">(Class&lt;F&gt; factoryType, Class&lt;?&gt; implementationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/assistedinject/package-descr.html b/latest-javadoc/com/google/inject/assistedinject/package-descr.html
deleted file mode 100755
index 3de6792..0000000
--- a/latest-javadoc/com/google/inject/assistedinject/package-descr.html
+++ /dev/null
@@ -1,305 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.assistedinject Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.assistedinject</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<div class="jd-descr">
-<p>Extension for combining factory interfaces with injection; this extension requires <code>guice-assistedinject-3.0.jar</code>.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/assistedinject/package-summary.html b/latest-javadoc/com/google/inject/assistedinject/package-summary.html
deleted file mode 100755
index e3ad738..0000000
--- a/latest-javadoc/com/google/inject/assistedinject/package-summary.html
+++ /dev/null
@@ -1,369 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.assistedinject
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.assistedinject</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-
-
-  <div class="jd-descr">
-  <p>Extension for combining factory interfaces with injection; this extension requires <code>guice-assistedinject-3.0.jar</code>.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding for a factory created by FactoryModuleBuilder.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">A visitor for the AssistedInject extension.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></td>
-              <td class="jd-descrcol" width="100%">Details about how a method in an assisted inject factory will be assisted.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></td>
-              <td class="jd-descrcol" width="100%">Provides a factory that combines the caller's arguments with injector-supplied values to
- construct objects.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</td>
-              <td class="jd-descrcol" width="100%">
-      <em>
-  This class is deprecated.
-      use <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code> instead.
-</em>&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/binder/AnnotatedBindingBuilder.html b/latest-javadoc/com/google/inject/binder/AnnotatedBindingBuilder.html
deleted file mode 100755
index 84df73a..0000000
--- a/latest-javadoc/com/google/inject/binder/AnnotatedBindingBuilder.html
+++ /dev/null
@@ -1,888 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  AnnotatedBindingBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>AnnotatedBindingBuilder</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.binder.AnnotatedBindingBuilder&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html#annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)">annotatedWith</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html#annotatedWith(java.lang.annotation.Annotation)">annotatedWith</a></span>(Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.binder.LinkedBindingBuilder" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.binder.LinkedBindingBuilder-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">com.google.inject.binder.LinkedBindingBuilder</a>
-
-<div id="inherited-methods-com.google.inject.binder.LinkedBindingBuilder">
-  <div id="inherited-methods-com.google.inject.binder.LinkedBindingBuilder-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.binder.LinkedBindingBuilder-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#to(com.google.inject.Key<? extends T>)">to</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;T&gt; targetKey)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#to(com.google.inject.TypeLiteral<? extends T>)">to</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; implementation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#to(java.lang.Class<? extends T>)">to</a></span>(Class&lt;?&nbsp;extends&nbsp;T&gt; implementation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;S&nbsp;extends&nbsp;T&gt;
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toConstructor(java.lang.reflect.Constructor<S>)">toConstructor</a></span>(Constructor&lt;S&gt; constructor)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;S&nbsp;extends&nbsp;T&gt;
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toConstructor(java.lang.reflect.Constructor<S>, com.google.inject.TypeLiteral<? extends S>)">toConstructor</a></span>(Constructor&lt;S&gt; constructor, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;S&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toInstance(T)">toInstance</a></span>(T instance)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(com.google.inject.Key<? extends javax.inject.Provider<? extends T>>)">toProvider</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt; providerKey)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(com.google.inject.Provider<? extends T>)">toProvider</a></span>(<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&nbsp;extends&nbsp;T&gt; provider)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(com.google.inject.TypeLiteral<? extends javax.inject.Provider<? extends T>>)">toProvider</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt; providerType)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(java.lang.Class<? extends javax.inject.Provider<? extends T>>)">toProvider</a></span>(Class&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt; providerType)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">com.google.inject.binder.ScopedBindingBuilder</a>
-
-<div id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder">
-  <div id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html#asEagerSingleton()">asEagerSingleton</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Instructs the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> to eagerly initialize this
- singleton-scoped binding upon creation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html#in(com.google.inject.Scope)">in</a></span>(<a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html#in(java.lang.Class<? extends java.lang.annotation.Annotation>)">in</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="annotatedWith(java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/binder/AnnotatedConstantBindingBuilder.html b/latest-javadoc/com/google/inject/binder/AnnotatedConstantBindingBuilder.html
deleted file mode 100755
index f14337c..0000000
--- a/latest-javadoc/com/google/inject/binder/AnnotatedConstantBindingBuilder.html
+++ /dev/null
@@ -1,553 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  AnnotatedConstantBindingBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>AnnotatedConstantBindingBuilder</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.binder.AnnotatedConstantBindingBuilder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html#annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)">annotatedWith</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html#annotatedWith(java.lang.annotation.Annotation)">annotatedWith</a></span>(Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a>
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="annotatedWith(java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a>
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/binder/AnnotatedElementBuilder.html b/latest-javadoc/com/google/inject/binder/AnnotatedElementBuilder.html
deleted file mode 100755
index 1f694d7..0000000
--- a/latest-javadoc/com/google/inject/binder/AnnotatedElementBuilder.html
+++ /dev/null
@@ -1,553 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  AnnotatedElementBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>AnnotatedElementBuilder</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.binder.AnnotatedElementBuilder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html#annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)">annotatedWith</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html#annotatedWith(java.lang.annotation.Annotation)">annotatedWith</a></span>(Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="annotatedWith(java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/binder/ConstantBindingBuilder.html b/latest-javadoc/com/google/inject/binder/ConstantBindingBuilder.html
deleted file mode 100755
index e8ac08c..0000000
--- a/latest-javadoc/com/google/inject/binder/ConstantBindingBuilder.html
+++ /dev/null
@@ -1,1021 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ConstantBindingBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ConstantBindingBuilder</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.binder.ConstantBindingBuilder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Binds to a constant value.
-</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;E&nbsp;extends&nbsp;Enum&lt;E&gt;&gt;
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(E)">to</a></span>(E value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(boolean)">to</a></span>(boolean value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(byte)">to</a></span>(byte value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(char)">to</a></span>(char value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(double)">to</a></span>(double value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(float)">to</a></span>(float value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(int)">to</a></span>(int value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(java.lang.Class<?>)">to</a></span>(Class&lt;?&gt; value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(java.lang.String)">to</a></span>(String value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(long)">to</a></span>(long value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html#to(short)">to</a></span>(short value)</nobr>
-        
-        <div class="jd-descrdiv">Binds constant to the given value.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="to(E)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(E value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(boolean)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(boolean value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(byte)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(byte value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(char)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(char value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(double)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(double value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(float)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(float value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(int)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(int value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(Class&lt;?&gt; value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(String value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(long)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(long value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(short)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(short value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds constant to the given value.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/binder/LinkedBindingBuilder.html b/latest-javadoc/com/google/inject/binder/LinkedBindingBuilder.html
deleted file mode 100755
index ebfe0ee..0000000
--- a/latest-javadoc/com/google/inject/binder/LinkedBindingBuilder.html
+++ /dev/null
@@ -1,1128 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  LinkedBindingBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>LinkedBindingBuilder</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.binder.LinkedBindingBuilder&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#to(com.google.inject.Key<? extends T>)">to</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;T&gt; targetKey)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#to(com.google.inject.TypeLiteral<? extends T>)">to</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; implementation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#to(java.lang.Class<? extends T>)">to</a></span>(Class&lt;?&nbsp;extends&nbsp;T&gt; implementation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;S&nbsp;extends&nbsp;T&gt;
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toConstructor(java.lang.reflect.Constructor<S>)">toConstructor</a></span>(Constructor&lt;S&gt; constructor)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;S&nbsp;extends&nbsp;T&gt;
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toConstructor(java.lang.reflect.Constructor<S>, com.google.inject.TypeLiteral<? extends S>)">toConstructor</a></span>(Constructor&lt;S&gt; constructor, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;S&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toInstance(T)">toInstance</a></span>(T instance)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(com.google.inject.Key<? extends javax.inject.Provider<? extends T>>)">toProvider</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt; providerKey)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(com.google.inject.Provider<? extends T>)">toProvider</a></span>(<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&nbsp;extends&nbsp;T&gt; provider)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(com.google.inject.TypeLiteral<? extends javax.inject.Provider<? extends T>>)">toProvider</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt; providerType)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(java.lang.Class<? extends javax.inject.Provider<? extends T>>)">toProvider</a></span>(Class&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt; providerType)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">com.google.inject.binder.ScopedBindingBuilder</a>
-
-<div id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder">
-  <div id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.binder.ScopedBindingBuilder-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html#asEagerSingleton()">asEagerSingleton</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Instructs the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> to eagerly initialize this
- singleton-scoped binding upon creation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html#in(com.google.inject.Scope)">in</a></span>(<a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html#in(java.lang.Class<? extends java.lang.annotation.Annotation>)">in</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="to(com.google.inject.Key<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;T&gt; targetKey)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(com.google.inject.TypeLiteral<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; implementation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(java.lang.Class<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;T&gt; implementation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toConstructor(java.lang.reflect.Constructor<S>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">toConstructor</span>
-      <span class="normal">(Constructor&lt;S&gt; constructor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toConstructor(java.lang.reflect.Constructor<S>, com.google.inject.TypeLiteral<? extends S>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">toConstructor</span>
-      <span class="normal">(Constructor&lt;S&gt; constructor, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;S&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toInstance(T)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">toInstance</span>
-      <span class="normal">(T instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/Injector.html#injectMembers(java.lang.Object)">injectMembers(Object)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="toProvider(com.google.inject.Key<? extends javax.inject.Provider<? extends T>>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">toProvider</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt; providerKey)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toProvider(com.google.inject.Provider<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">toProvider</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&nbsp;extends&nbsp;T&gt; provider)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/Injector.html#injectMembers(java.lang.Object)">injectMembers(Object)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="toProvider(com.google.inject.TypeLiteral<? extends javax.inject.Provider<? extends T>>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">toProvider</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt; providerType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toProvider(java.lang.Class<? extends javax.inject.Provider<? extends T>>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">toProvider</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt; providerType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/binder/ScopedBindingBuilder.html b/latest-javadoc/com/google/inject/binder/ScopedBindingBuilder.html
deleted file mode 100755
index b7536ea..0000000
--- a/latest-javadoc/com/google/inject/binder/ScopedBindingBuilder.html
+++ /dev/null
@@ -1,665 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ScopedBindingBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ScopedBindingBuilder</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.binder.ScopedBindingBuilder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;,
-            
-              <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html#asEagerSingleton()">asEagerSingleton</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Instructs the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> to eagerly initialize this
- singleton-scoped binding upon creation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html#in(com.google.inject.Scope)">in</a></span>(<a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html#in(java.lang.Class<? extends java.lang.annotation.Annotation>)">in</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="asEagerSingleton()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">asEagerSingleton</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Instructs the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> to eagerly initialize this
- singleton-scoped binding upon creation. Useful for application
- initialization logic.  See the EDSL examples at
- <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="in(com.google.inject.Scope)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">in</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="in(java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">in</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/binder/package-descr.html b/latest-javadoc/com/google/inject/binder/package-descr.html
deleted file mode 100755
index f398a41..0000000
--- a/latest-javadoc/com/google/inject/binder/package-descr.html
+++ /dev/null
@@ -1,297 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.binder Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.binder</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<div class="jd-descr">
-<p>Interfaces which make up <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>'s
- expression language.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/binder/package-summary.html b/latest-javadoc/com/google/inject/binder/package-summary.html
deleted file mode 100755
index 862a793..0000000
--- a/latest-javadoc/com/google/inject/binder/package-summary.html
+++ /dev/null
@@ -1,353 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.binder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.binder</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-
-
-  <div class="jd-descr">
-  <p>Interfaces which make up <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>'s
- expression language.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/binder/AnnotatedElementBuilder.html">AnnotatedElementBuilder</a></td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/binder/ConstantBindingBuilder.html">ConstantBindingBuilder</a></td>
-              <td class="jd-descrcol" width="100%">Binds to a constant value.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/BindingEdge.Factory.html b/latest-javadoc/com/google/inject/grapher/BindingEdge.Factory.html
deleted file mode 100755
index 07bd86c..0000000
--- a/latest-javadoc/com/google/inject/grapher/BindingEdge.Factory.html
+++ /dev/null
@@ -1,590 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  BindingEdge.Factory
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-    static 
-     
-    
-    interface
-<h1>BindingEdge.Factory</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.BindingEdge.Factory&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">com.google.inject.grapher.BindingEdge</a>&lt;K&gt;&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></td>
-              <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Factory interface for <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code>s. Renderer implementations will
- need to provide an implementation for this.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html#newBindingEdge(K, K)">newBindingEdge</a></span>(K fromId, K toId)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> instance and adds it to the graph.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="newBindingEdge(K, K)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">newBindingEdge</span>
-      <span class="normal">(K fromId, K toId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a new <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> instance and adds it to the graph.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>fromId</td>
-          <td>Node ID for the interface node.</td>
-        </tr>
-        <tr>
-          <th>toId</td>
-          <td>Node ID for the implementation (class or instance) node.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>The newly created and added <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code>.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/BindingEdge.Type.html b/latest-javadoc/com/google/inject/grapher/BindingEdge.Type.html
deleted file mode 100755
index dc06a4b..0000000
--- a/latest-javadoc/com/google/inject/grapher/BindingEdge.Type.html
+++ /dev/null
@@ -1,1233 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  BindingEdge.Type
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-  <a href="#enumconstants">Enums</a>
-  
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-    static 
-    final 
-    
-    enum
-<h1>BindingEdge.Type</h1>
-
-
-
-  
-  
-  
-
-  
-    extends Enum&lt;E&nbsp;extends&nbsp;Enum&lt;E&gt;&gt;<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Enum&lt;E&nbsp;extends&nbsp;java.lang.Enum&lt;E&gt;&gt;</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.BindingEdge.Type</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Classification for what kind of binding this edge represents.
-</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a>&nbsp;</td>
-        <td class="jd-linkcol">CONVERTED_CONSTANT&nbsp;</td>
-        <td class="jd-descrcol" width="100%">Binding is to the interface for a constant of a different type.&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a>&nbsp;</td>
-        <td class="jd-linkcol">NORMAL&nbsp;</td>
-        <td class="jd-descrcol" width="100%">Binding is to an instance or class of the binding's same type.&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a>&nbsp;</td>
-        <td class="jd-linkcol">PROVIDER&nbsp;</td>
-        <td class="jd-descrcol" width="100%">Binding is to an instance or class that provides the binding's type.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html#valueOf(java.lang.String)">valueOf</a></span>(String name)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            static
-            
-            <a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">Type[]</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html#values()">values</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Enum" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Enum-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Enum
-
-<div id="inherited-methods-java.lang.Enum">
-  <div id="inherited-methods-java.lang.Enum-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Enum-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(E arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;E&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getDeclaringClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">name</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">ordinal</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&nbsp;extends&nbsp;Enum&lt;T&gt;&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">valueOf</span>(Class&lt;T&gt; arg0, String arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Comparable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Comparable-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.Comparable
-
-<div id="inherited-methods-java.lang.Comparable">
-  <div id="inherited-methods-java.lang.Comparable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Comparable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(T arg0)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Enum Values</h2>
-
-
-
-
-<A NAME="CONVERTED_CONSTANT"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a>
-      </span>
-        CONVERTED_CONSTANT
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binding is to the interface for a constant of a different type. </p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="NORMAL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a>
-      </span>
-        NORMAL
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binding is to an instance or class of the binding's same type. </p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="PROVIDER"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a>
-      </span>
-        PROVIDER
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binding is to an instance or class that provides the binding's type. </p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="valueOf(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a>
-      </span>
-      <span class="sympad">valueOf</span>
-      <span class="normal">(String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="values()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-         
-         
-        <a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">Type[]</a>
-      </span>
-      <span class="sympad">values</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/BindingEdge.html b/latest-javadoc/com/google/inject/grapher/BindingEdge.html
deleted file mode 100755
index 57f19ed..0000000
--- a/latest-javadoc/com/google/inject/grapher/BindingEdge.html
+++ /dev/null
@@ -1,606 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  BindingEdge
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>BindingEdge</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.BindingEdge&lt;K&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></td>
-              <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> methods to display
- operations on a <code><a href="../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Interface for an edge that connects an interface to the type or instance
- that is bound to implement it.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_3.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        interface</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</td>
-      <td class="jd-descrcol" width="100%">Factory interface for <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code>s.&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-Guice_3.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        enum</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></td>
-      <td class="jd-descrcol" width="100%">Classification for what kind of binding this edge represents.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/BindingEdge.html#setType(com.google.inject.grapher.BindingEdge.Type)">setType</a></span>(<a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a> type)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="setType(com.google.inject.grapher.BindingEdge.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">setType</span>
-      <span class="normal">(<a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a> type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/DependencyEdge.Factory.html b/latest-javadoc/com/google/inject/grapher/DependencyEdge.Factory.html
deleted file mode 100755
index 12244eb..0000000
--- a/latest-javadoc/com/google/inject/grapher/DependencyEdge.Factory.html
+++ /dev/null
@@ -1,592 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  DependencyEdge.Factory
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-    static 
-     
-    
-    interface
-<h1>DependencyEdge.Factory</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.DependencyEdge.Factory&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">com.google.inject.grapher.DependencyEdge</a>&lt;K&gt;&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></td>
-              <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Factory interface for <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>s. Renderer implementations
- will need to provide an implementation for this.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html#newDependencyEdge(K, com.google.inject.spi.InjectionPoint, K)">newDependencyEdge</a></span>(K fromId, <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a> fromPoint, K toId)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> and adds it to the graph.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="newDependencyEdge(K, com.google.inject.spi.InjectionPoint, K)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">newDependencyEdge</span>
-      <span class="normal">(K fromId, <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a> fromPoint, K toId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a new <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> and adds it to the graph.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>fromId</td>
-          <td>The ID for the class or instance node that has the
-     dependency.</td>
-        </tr>
-        <tr>
-          <th>fromPoint</td>
-          <td>The point where the dependency will be
-     @Injected. </td>
-        </tr>
-        <tr>
-          <th>toId</td>
-          <td>The ID for the interface node that satisfies the dependency.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/DependencyEdge.html b/latest-javadoc/com/google/inject/grapher/DependencyEdge.html
deleted file mode 100755
index a238554..0000000
--- a/latest-javadoc/com/google/inject/grapher/DependencyEdge.html
+++ /dev/null
@@ -1,528 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  DependencyEdge
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>DependencyEdge</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.DependencyEdge&lt;K&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></td>
-              <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> methods to display
- operations on a <code><a href="../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Interface for an edge from a class or <code><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></code> to the
- interface node that will satisfy the dependency.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_3.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        interface</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</td>
-      <td class="jd-descrcol" width="100%">Factory interface for <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>s.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/GrapherModule.html b/latest-javadoc/com/google/inject/grapher/GrapherModule.html
deleted file mode 100755
index f9e0d99..0000000
--- a/latest-javadoc/com/google/inject/grapher/GrapherModule.html
+++ /dev/null
@@ -1,1340 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  GrapherModule
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>GrapherModule</h1>
-
-
-
-  
-  
-  
-
-  
-    extends <a href="../../../../com/google/inject/AbstractModule.html">AbstractModule</a><br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell"><a href="../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a></td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.GrapherModule</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Module for the common bindings for <code><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></code>. You will also
- need to bind a Module that satisfies the <code><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code>
- dependency.
- <p>
- If you want to use subtypes of the node and edge classes, or a different
- node ID type, you will need to override the <code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a></code> binding
- to specify the new type parameters. </p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GrapherModule.html#GrapherModule()">GrapherModule</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GrapherModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.AbstractModule" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.AbstractModule-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  <a href="../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a>
-
-<div id="inherited-methods-com.google.inject.AbstractModule">
-  <div id="inherited-methods-com.google.inject.AbstractModule-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.AbstractModule-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.Key<T>)">bind</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.TypeLiteral<T>)">bind</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bind(java.lang.Class<T>)">bind</a></span>(Class&lt;T&gt; clazz)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindConstant()">bindConstant</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation, <a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#binder()">binder</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets direct access to the underlying <code>Binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> builder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#currentStage()">currentStage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#install(com.google.inject.Module)">install</a></span>(<a href="../../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requestInjection(java.lang.Object)">requestInjection</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection</a></span>(Class...&lt;?&gt; types)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requireBinding(com.google.inject.Key<?>)">requireBinding</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>key</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requireBinding(java.lang.Class<?>)">requireBinding</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>type</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Module" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Module-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Module.html">com.google.inject.Module</a>
-
-<div id="inherited-methods-com.google.inject.Module">
-  <div id="inherited-methods-com.google.inject.Module-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Module-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Module.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="GrapherModule()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">GrapherModule</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="configure()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">configure</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Configures a <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/GraphingVisitor.html b/latest-javadoc/com/google/inject/grapher/GraphingVisitor.html
deleted file mode 100755
index d7ed105..0000000
--- a/latest-javadoc/com/google/inject/grapher/GraphingVisitor.html
+++ /dev/null
@@ -1,2066 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  GraphingVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>GraphingVisitor</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.GraphingVisitor&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">com.google.inject.grapher.InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">com.google.inject.grapher.ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">com.google.inject.grapher.BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">com.google.inject.grapher.DependencyEdge</a>&lt;K&gt;&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p><code><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> that adds nodes and edges to the graph based on
- the visited <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>.
- <p>
- This class is parameterized over the four graph element types
- (<code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>, <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code>, <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code>, and
- <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>) so that you can extend those interfaces and also
- extend this class, and the helper methods will all return your new types.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#GraphingVisitor(com.google.inject.grapher.NodeIdFactory<K>, com.google.inject.grapher.InterfaceNode.Factory<K, N>, com.google.inject.grapher.ImplementationNode.Factory<K, M>, com.google.inject.grapher.BindingEdge.Factory<K, B>, com.google.inject.grapher.DependencyEdge.Factory<K, D>, com.google.inject.grapher.NodeAliasFactory<K>)">GraphingVisitor</a></span>(<a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt; idFactory, <a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">Factory</a>&lt;K,&nbsp;N&gt; interfaceNodeFactory, <a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">Factory</a>&lt;K,&nbsp;M&gt; implementationNodeFactory, <a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">Factory</a>&lt;K,&nbsp;B&gt; bindingEdgeFactory, <a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">Factory</a>&lt;K,&nbsp;D&gt; dependencyEdgeFactory, <a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt; nodeAliasFactory)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.ConstructorBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visitor for <code><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a></code>s.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visitor for <code><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.ExposedBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Currently not displayed on the graph.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.InstanceBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visitor for <code><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visitor for <code><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.ProviderBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visitor for <code><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Same as <code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.InstanceBinding<?>)">visit(InstanceBinding)</a></code>, but the
- <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> is <code><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html#PROVIDER">PROVIDER</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Same as <code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<?>)">visit(LinkedKeyBinding)</a></code>, but the
- <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> is <code><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html#PROVIDER">PROVIDER</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.UntargettedBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Currently not displayed on the graph.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            K</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#getClassNodeId(com.google.inject.Binding<?>)">getClassNodeId</a></span>(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Helper method to return the standard node ID for the <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>'s
- <code><a href="../../../../com/google/inject/Key.html">Key</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            K</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#getInstanceNodeId(com.google.inject.Binding<?>)">getInstanceNodeId</a></span>(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Helper method to return the instance node ID for the <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>'s
- <code><a href="../../../../com/google/inject/Key.html">Key</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            B</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newBindingEdge(K, K, com.google.inject.grapher.BindingEdge.Type)">newBindingEdge</a></span>(K nodeId, K toId, <a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a> type)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> from the given node to the specified
- node.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            M</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newClassImplementationNode(com.google.inject.Binding<?>, com.google.inject.spi.InjectionPoint, java.util.Collection<com.google.inject.spi.InjectionPoint>)">newClassImplementationNode</a></span>(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding, <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a> constructorInjectionPoint, Collection&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt; memberInjectionPoints)</nobr>
-        
-        <div class="jd-descrdiv">Creates and returns a new <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> for the given
- <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>, where the <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code> is for a class that Guice
- will instantiate, rather than a specific instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            D</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newDependencyEdge(K, com.google.inject.spi.InjectionPoint, com.google.inject.spi.Dependency<?>)">newDependencyEdge</a></span>(K nodeId, <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a> injectionPoint, <a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt; dependency)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> from the given node to a
- <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;D&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newDependencyEdges(K, M, java.util.Collection<com.google.inject.spi.Dependency<?>>)">newDependencyEdges</a></span>(K nodeId, M node, Collection&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt; dependencies)</nobr>
-        
-        <div class="jd-descrdiv">Adds <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>s to the graph for each of the provided
- <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code>s.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            M</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newInstanceImplementationNode(com.google.inject.Binding<?>, java.lang.Object)">newInstanceImplementationNode</a></span>(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding, Object instance)</nobr>
-        
-        <div class="jd-descrdiv">Creates and returns a new <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> for the given
- <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>, where the <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code> is for an instance, rather than
- a class.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            N</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newInterfaceNode(com.google.inject.Binding<?>)">newInterfaceNode</a></span>(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Creates and returns a new <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> object for the given
- <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.BindingTargetVisitor" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">com.google.inject.spi.BindingTargetVisitor</a>
-
-<div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor">
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConstructorBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a constructor binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding created from converting a bound instance to a new type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ExposedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a key exposed from an enclosed private environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.InstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a linked key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.UntargettedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an untargetted binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="GraphingVisitor(com.google.inject.grapher.NodeIdFactory<K>, com.google.inject.grapher.InterfaceNode.Factory<K, N>, com.google.inject.grapher.ImplementationNode.Factory<K, M>, com.google.inject.grapher.BindingEdge.Factory<K, B>, com.google.inject.grapher.DependencyEdge.Factory<K, D>, com.google.inject.grapher.NodeAliasFactory<K>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">GraphingVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt; idFactory, <a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">Factory</a>&lt;K,&nbsp;N&gt; interfaceNodeFactory, <a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">Factory</a>&lt;K,&nbsp;M&gt; implementationNodeFactory, <a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">Factory</a>&lt;K,&nbsp;B&gt; bindingEdgeFactory, <a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">Factory</a>&lt;K,&nbsp;D&gt; dependencyEdgeFactory, <a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt; nodeAliasFactory)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visit(com.google.inject.spi.ConstructorBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Void
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visitor for <code><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a></code>s. These are for classes that Guice
- will instantiate to satisfy injection requests. We create a new
- <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> for the class, then add edges to everything
- that it depends on to be instantiated.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newClassImplementationNode(com.google.inject.Binding<?>, com.google.inject.spi.InjectionPoint, java.util.Collection<com.google.inject.spi.InjectionPoint>)">newClassImplementationNode(Binding, InjectionPoint, Collection)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newDependencyEdges(K, M, java.util.Collection<com.google.inject.spi.Dependency<?>>)">newDependencyEdges(Object, ImplementationNode, Collection)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ConvertedConstantBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Void
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visitor for <code><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a></code>. The <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>'s
- <code><a href="../../../../com/google/inject/Key.html">Key</a></code> will be of an annotated primitive type, and the value of
- <code><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html#getSourceKey()">getSourceKey()</a></code> will be of a
- String with the same annotation.
- <p>
- We render this as an <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> that has a
- <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> to the source <code><a href="../../../../com/google/inject/Key.html">Key</a></code>. That will then be rendered
- by <code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.InstanceBinding<?>)">visit(InstanceBinding)</a></code> as an <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>
- with a <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> to the String instance.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newInterfaceNode(com.google.inject.Binding<?>)">newInterfaceNode(Binding)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newBindingEdge(K, K, com.google.inject.grapher.BindingEdge.Type)">newBindingEdge(Object, Object, com.google.inject.grapher.BindingEdge.Type)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ExposedBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Void
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Currently not displayed on the graph.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.InstanceBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Void
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visitor for <code><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a></code>. We render two nodes in this case: a
- <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> for the binding's <code><a href="../../../../com/google/inject/Key.html">Key</a></code>, and then an
- <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> for the instance Object itself. We run
- a binding node between them.
- <p>
- We then render any <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>s that the instance may have,
- which come either from <code><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></code>s (method and field) on the
- instance, or on <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code>s the instance declares through the
- <code><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></code> interface.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newInterfaceNode(com.google.inject.Binding<?>)">newInterfaceNode(Binding)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newBindingEdge(K, K, com.google.inject.grapher.BindingEdge.Type)">newBindingEdge(Object, Object, com.google.inject.grapher.BindingEdge.Type)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newInstanceImplementationNode(com.google.inject.Binding<?>, java.lang.Object)">newInstanceImplementationNode(Binding, Object)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newDependencyEdges(K, M, java.util.Collection<com.google.inject.spi.Dependency<?>>)">newDependencyEdges(Object, ImplementationNode, java.util.Collection)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.LinkedKeyBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Void
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visitor for <code><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a></code>. This is the standard <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>
- you get from binding an interface class to an implementation class. We
- create an <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>, then draw a <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> to the
- node of the implementing class.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newInterfaceNode(com.google.inject.Binding<?>)">newInterfaceNode(Binding)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newBindingEdge(K, K, com.google.inject.grapher.BindingEdge.Type)">newBindingEdge(Object, Object, com.google.inject.grapher.BindingEdge.Type)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Void
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visitor for <code><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a></code>. These <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>s arise from an
- <code><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></code> for the <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> interface. Since this
- isn't tremendously interesting information, we don't render this binding
- on the graph, and instead let the <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> go straight from
- the <code><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></code> to the node specified by
- <code><a href="../../../../com/google/inject/spi/ProviderBinding.html#getProvidedKey()">getProvidedKey()</a></code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html#newAlias(K, K)">newAlias(Object, Object)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderInstanceBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Void
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Same as <code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.InstanceBinding<?>)">visit(InstanceBinding)</a></code>, but the
- <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> is <code><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html#PROVIDER">PROVIDER</a></code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newInterfaceNode(com.google.inject.Binding<?>)">newInterfaceNode(Binding)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newBindingEdge(K, K, com.google.inject.grapher.BindingEdge.Type)">newBindingEdge(Object, Object, com.google.inject.grapher.BindingEdge.Type)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newInstanceImplementationNode(com.google.inject.Binding<?>, java.lang.Object)">newInstanceImplementationNode(Binding, Object)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newDependencyEdges(K, M, java.util.Collection<com.google.inject.spi.Dependency<?>>)">newDependencyEdges(Object, ImplementationNode, java.util.Collection)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderKeyBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Void
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Same as <code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<?>)">visit(LinkedKeyBinding)</a></code>, but the
- <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> is <code><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html#PROVIDER">PROVIDER</a></code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newInterfaceNode(com.google.inject.Binding<?>)">newInterfaceNode(Binding)</a></code></li><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newBindingEdge(K, K, com.google.inject.grapher.BindingEdge.Type)">newBindingEdge(Object, Object, com.google.inject.grapher.BindingEdge.Type)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.UntargettedBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Void
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Currently not displayed on the graph.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="getClassNodeId(com.google.inject.Binding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        K
-      </span>
-      <span class="sympad">getClassNodeId</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Helper method to return the standard node ID for the <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>'s
- <code><a href="../../../../com/google/inject/Key.html">Key</a></code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/NodeIdFactory.html#getClassNodeId(com.google.inject.Key<?>)">getClassNodeId(Key)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getInstanceNodeId(com.google.inject.Binding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        K
-      </span>
-      <span class="sympad">getInstanceNodeId</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Helper method to return the instance node ID for the <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>'s
- <code><a href="../../../../com/google/inject/Key.html">Key</a></code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/NodeIdFactory.html#getInstanceNodeId(com.google.inject.Key<?>)">getInstanceNodeId(Key)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="newBindingEdge(K, K, com.google.inject.grapher.BindingEdge.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        B
-      </span>
-      <span class="sympad">newBindingEdge</span>
-      <span class="normal">(K nodeId, K toId, <a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a> type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a new <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> from the given node to the specified
- node.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>nodeId</td>
-          <td>ID of the <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> that binds to the other.</td>
-        </tr>
-        <tr>
-          <th>toId</td>
-          <td>The node ID of a class or instance that is bound.</td>
-        </tr>
-        <tr>
-          <th>type</td>
-          <td>The <code><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></code> of this binding.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>The newly-created and added <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code>.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="newClassImplementationNode(com.google.inject.Binding<?>, com.google.inject.spi.InjectionPoint, java.util.Collection<com.google.inject.spi.InjectionPoint>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        M
-      </span>
-      <span class="sympad">newClassImplementationNode</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding, <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a> constructorInjectionPoint, Collection&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt; memberInjectionPoints)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates and returns a new <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> for the given
- <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>, where the <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code> is for a class that Guice
- will instantiate, rather than a specific instance.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newDependencyEdge(K, com.google.inject.spi.InjectionPoint, com.google.inject.spi.Dependency<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        D
-      </span>
-      <span class="sympad">newDependencyEdge</span>
-      <span class="normal">(K nodeId, <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a> injectionPoint, <a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt; dependency)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a new <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> from the given node to a
- <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code>.
- <p>
- This method takes more comprehensive parameters than strictly necessary
- in case they would be useful to overriding implementations.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>nodeId</td>
-          <td>ID of the <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> where the edges will start.</td>
-        </tr>
-        <tr>
-          <th>injectionPoint</td>
-          <td>The <code><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></code> that gave rise to this
-     <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code>, if one exists. Used to figure out which
-     Member the edge should point from.</td>
-        </tr>
-        <tr>
-          <th>dependency</td>
-          <td>The <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code> to represent with this edge.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>The newly-created and added <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="newDependencyEdges(K, M, java.util.Collection<com.google.inject.spi.Dependency<?>>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        Collection&lt;D&gt;
-      </span>
-      <span class="sympad">newDependencyEdges</span>
-      <span class="normal">(K nodeId, M node, Collection&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt; dependencies)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Adds <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>s to the graph for each of the provided
- <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code>s. These will be from the given node ID to the
- <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code>'s <code><a href="../../../../com/google/inject/Key.html">Key</a></code>.
- <p>
- If a <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code> has an associated <code><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></code>, its
- member will be added to the given <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> and the edge
- will start at the Member.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>nodeId</td>
-          <td>ID of the node that should be the tail of the
-     <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>s.</td>
-        </tr>
-        <tr>
-          <th>node</td>
-          <td>An <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> to add Members to.</td>
-        </tr>
-        <tr>
-          <th>dependencies</td>
-          <td>Collection of <code><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a></code>s from the
-     <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>A Collection of the <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>s that were
-     added to the graph.
-</li></ul>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html#newDependencyEdge(K, com.google.inject.spi.InjectionPoint, com.google.inject.spi.Dependency<?>)">newDependencyEdge(Object, InjectionPoint, Dependency)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="newInstanceImplementationNode(com.google.inject.Binding<?>, java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        M
-      </span>
-      <span class="sympad">newInstanceImplementationNode</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding, Object instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates and returns a new <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> for the given
- <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>, where the <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code> is for an instance, rather than
- a class.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newInterfaceNode(com.google.inject.Binding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        N
-      </span>
-      <span class="sympad">newInterfaceNode</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates and returns a new <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> object for the given
- <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/ImplementationNode.Factory.html b/latest-javadoc/com/google/inject/grapher/ImplementationNode.Factory.html
deleted file mode 100755
index a4338e5..0000000
--- a/latest-javadoc/com/google/inject/grapher/ImplementationNode.Factory.html
+++ /dev/null
@@ -1,586 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ImplementationNode.Factory
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-    static 
-     
-    
-    interface
-<h1>ImplementationNode.Factory</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.ImplementationNode.Factory&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">com.google.inject.grapher.ImplementationNode</a>&lt;K&gt;&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></td>
-              <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Factory interface for <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code>s. Renderer
- implementations will need to provide an implementation for this.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html#newImplementationNode(K)">newImplementationNode</a></span>(K nodeId)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> and adds it to the graph.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="newImplementationNode(K)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">newImplementationNode</span>
-      <span class="normal">(K nodeId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a new <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> and adds it to the graph.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>nodeId</td>
-          <td>ID for the node.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>The new <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> instance.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/ImplementationNode.html b/latest-javadoc/com/google/inject/grapher/ImplementationNode.html
deleted file mode 100755
index c2f0a9d..0000000
--- a/latest-javadoc/com/google/inject/grapher/ImplementationNode.html
+++ /dev/null
@@ -1,755 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ImplementationNode
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ImplementationNode</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.ImplementationNode&lt;K&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></td>
-              <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> methods to display
- operations on a <code><a href="../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Node for classes and instances that have Dependencys and are
- bound to <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>s. These nodes will often have fields for
- Members that are InjectionPoints.</p>
-
-
-
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code></li>
-      </ul>
-  </div>
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_3.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        interface</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</td>
-      <td class="jd-descrcol" width="100%">Factory interface for <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code>s.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ImplementationNode.html#addMember(java.lang.reflect.Member)">addMember</a></span>(Member member)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ImplementationNode.html#setClassKey(com.google.inject.Key<?>)">setClassKey</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Sets the <code><a href="../../../../com/google/inject/Key.html">Key</a></code> that this node is for.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ImplementationNode.html#setInstance(java.lang.Object)">setInstance</a></span>(Object instance)</nobr>
-        
-        <div class="jd-descrdiv">Sets the Object that's the already-created instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ImplementationNode.html#setSource(java.lang.Object)">setSource</a></span>(Object source)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="addMember(java.lang.reflect.Member)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">addMember</span>
-      <span class="normal">(Member member)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setClassKey(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">setClassKey</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Sets the <code><a href="../../../../com/google/inject/Key.html">Key</a></code> that this node is for. Used when the node is
- representing a class that Guice will instantiate.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setInstance(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">setInstance</span>
-      <span class="normal">(Object instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Sets the Object that's the already-created instance. Used when
- this node is represeting the instance instead of a class.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setSource(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">setSource</span>
-      <span class="normal">(Object source)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/InjectorGrapher.html b/latest-javadoc/com/google/inject/grapher/InjectorGrapher.html
deleted file mode 100755
index 41ec2dd..0000000
--- a/latest-javadoc/com/google/inject/grapher/InjectorGrapher.html
+++ /dev/null
@@ -1,967 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InjectorGrapher
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>InjectorGrapher</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.InjectorGrapher</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Root class for graphing an <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code>. Bound in <code><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></code>.
- <p>
- Use <code><a href="../../../../com/google/inject/grapher/InjectorGrapher.html#of(com.google.inject.Injector)">of(Injector)</a></code> to specify the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> to use, and
- graph() to graph the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> using the currently-bound
- <code><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code>.
- <p>
- By default, this will graph the entire <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code>. Use
- <code><a href="../../../../com/google/inject/grapher/InjectorGrapher.html#rootedAt(java.lang.Class<?>...)">rootedAt(Class)</a></code> to specify an initial set of Classes to
- use, and this will graph their transitive bindings and dependencies.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html#InjectorGrapher(com.google.inject.spi.BindingTargetVisitor<java.lang.Object, java.util.Collection<com.google.inject.Key<?>>>, com.google.inject.spi.BindingTargetVisitor<java.lang.Object, java.lang.Void>, com.google.inject.grapher.Renderer)">InjectorGrapher</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;Object,&nbsp;Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;&gt; keyVisitor, <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;Object,&nbsp;Void&gt; graphingVisitor, <a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a> renderer)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html#graph()">graph</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Renders a graph with the bound <code><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html#of(com.google.inject.Injector)">of</a></span>(<a href="../../../../com/google/inject/Injector.html">Injector</a> injector)</nobr>
-        
-        <div class="jd-descrdiv">Sets the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> to graph.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html#rootedAt(java.lang.Class<?>...)">rootedAt</a></span>(Class...&lt;?&gt; classes)</nobr>
-        
-        <div class="jd-descrdiv">Sets an initial group of Classes to use as the starting point for
- the graph.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="InjectorGrapher(com.google.inject.spi.BindingTargetVisitor<java.lang.Object, java.util.Collection<com.google.inject.Key<?>>>, com.google.inject.spi.BindingTargetVisitor<java.lang.Object, java.lang.Void>, com.google.inject.grapher.Renderer)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">InjectorGrapher</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;Object,&nbsp;Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;&gt; keyVisitor, <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;Object,&nbsp;Void&gt; graphingVisitor, <a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a> renderer)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="graph()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">graph</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Renders a graph with the bound <code><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code>. The <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code>
- must have already been specified with <code><a href="../../../../com/google/inject/grapher/InjectorGrapher.html#of(com.google.inject.Injector)">of(Injector)</a></code>.
-</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>IOException</td>
-            <td></td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="of(com.google.inject.Injector)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a>
-      </span>
-      <span class="sympad">of</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Injector.html">Injector</a> injector)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Sets the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> to graph.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="rootedAt(java.lang.Class<?>...)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a>
-      </span>
-      <span class="sympad">rootedAt</span>
-      <span class="normal">(Class...&lt;?&gt; classes)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Sets an initial group of Classes to use as the starting point for
- the graph. The graph will be of these classes and their transitive
- dependencies and bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/InterfaceNode.Factory.html b/latest-javadoc/com/google/inject/grapher/InterfaceNode.Factory.html
deleted file mode 100755
index d65d413..0000000
--- a/latest-javadoc/com/google/inject/grapher/InterfaceNode.Factory.html
+++ /dev/null
@@ -1,586 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InterfaceNode.Factory
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-    static 
-     
-    
-    interface
-<h1>InterfaceNode.Factory</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.InterfaceNode.Factory&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">com.google.inject.grapher.InterfaceNode</a>&lt;K&gt;&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></td>
-              <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Factory interface for <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>s. Renderer implementations
- will need to provide an implementation for this.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html#newInterfaceNode(K)">newInterfaceNode</a></span>(K nodeId)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> and adds it to the graph.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="newInterfaceNode(K)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">newInterfaceNode</span>
-      <span class="normal">(K nodeId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a new <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> and adds it to the graph.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>nodeId</td>
-          <td>ID for the node.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>The new <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> instance.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/InterfaceNode.html b/latest-javadoc/com/google/inject/grapher/InterfaceNode.html
deleted file mode 100755
index 286591c..0000000
--- a/latest-javadoc/com/google/inject/grapher/InterfaceNode.html
+++ /dev/null
@@ -1,648 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InterfaceNode
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>InterfaceNode</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.InterfaceNode&lt;K&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></td>
-              <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> methods to display
- operations on a <code><a href="../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Node for an interface class that has been bound to an implementation class
- or instance. These nodes are basically defined by a <code><a href="../../../../com/google/inject/Key.html">Key</a></code>.</p>
-
-
-
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code></li>
-      </ul>
-  </div>
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_3.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        interface</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</td>
-      <td class="jd-descrcol" width="100%">Factory interface for <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>s.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/InterfaceNode.html#setKey(com.google.inject.Key<?>)">setKey</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/InterfaceNode.html#setSource(java.lang.Object)">setSource</a></span>(Object source)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="setKey(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">setKey</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setSource(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">setSource</span>
-      <span class="normal">(Object source)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/NameFactory.html b/latest-javadoc/com/google/inject/grapher/NameFactory.html
deleted file mode 100755
index 3e13871..0000000
--- a/latest-javadoc/com/google/inject/grapher/NameFactory.html
+++ /dev/null
@@ -1,766 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  NameFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>NameFactory</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.NameFactory</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></td>
-              <td class="jd-descrcol" width="100%">Reasonable implementation for <code><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Interface for a service that provides nice Strings that we can
- display in the graph for the types that come up in Bindings.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getAnnotationName(com.google.inject.Key<?>)">getAnnotationName</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getClassName(com.google.inject.Key<?>)">getClassName</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getInstanceName(java.lang.Object)">getInstanceName</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getMemberName(java.lang.reflect.Member)">getMemberName</a></span>(Member member)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getSourceName(java.lang.Object)">getSourceName</a></span>(Object source)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getAnnotationName(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getAnnotationName</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getClassName(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getClassName</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getInstanceName(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getInstanceName</span>
-      <span class="normal">(Object instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMemberName(java.lang.reflect.Member)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getMemberName</span>
-      <span class="normal">(Member member)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSourceName(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getSourceName</span>
-      <span class="normal">(Object source)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/NodeAliasFactory.html b/latest-javadoc/com/google/inject/grapher/NodeAliasFactory.html
deleted file mode 100755
index d743048..0000000
--- a/latest-javadoc/com/google/inject/grapher/NodeAliasFactory.html
+++ /dev/null
@@ -1,576 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  NodeAliasFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>NodeAliasFactory</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.NodeAliasFactory&lt;K&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></td>
-              <td class="jd-descrcol" width="100%"><code><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code> implementation that writes out a Graphviz DOT file of the
- graph.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Factory for aliasing one node ID to another. Used when we don't want to
- render Keys from Bindings that are not interesting.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html#newAlias(K, K)">newAlias</a></span>(K fromId, K toId)</nobr>
-        
-        <div class="jd-descrdiv">Makes edges that would point to <code>fromId</code> point to
- <code>toId</code> instead.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="newAlias(K, K)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">newAlias</span>
-      <span class="normal">(K fromId, K toId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Makes edges that would point to <code>fromId</code> point to
- <code>toId</code> instead.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/NodeIdFactory.html b/latest-javadoc/com/google/inject/grapher/NodeIdFactory.html
deleted file mode 100755
index 67b7027..0000000
--- a/latest-javadoc/com/google/inject/grapher/NodeIdFactory.html
+++ /dev/null
@@ -1,624 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  NodeIdFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>NodeIdFactory</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.NodeIdFactory&lt;K&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></td>
-              <td class="jd-descrcol" width="100%">IdFactory implementation that for String node IDs.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Factory for abstract identifiers for elements on the graph. Most graph nodes
- will correspond directly to <code><a href="../../../../com/google/inject/Key.html">Key</a></code>s, but we do this for additional
- flexibility and because instances do not have separate <code><a href="../../../../com/google/inject/Key.html">Key</a></code>s from the
- interfaces they are bound to.
- <p>
- Node IDs are treated as opaque values by <code><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a></code> and the
- other classes in this package.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            K</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html#getClassNodeId(com.google.inject.Key<?>)">getClassNodeId</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            K</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html#getInstanceNodeId(com.google.inject.Key<?>)">getInstanceNodeId</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getClassNodeId(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        K
-      </span>
-      <span class="sympad">getClassNodeId</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getInstanceNodeId(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        K
-      </span>
-      <span class="sympad">getInstanceNodeId</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/Renderer.html b/latest-javadoc/com/google/inject/grapher/Renderer.html
deleted file mode 100755
index ec75d5d..0000000
--- a/latest-javadoc/com/google/inject/grapher/Renderer.html
+++ /dev/null
@@ -1,584 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Renderer
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>Renderer</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.Renderer</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></td>
-              <td class="jd-descrcol" width="100%"><code><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code> implementation that writes out a Graphviz DOT file of the
- graph.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Interface for the service that renders the graph. It is assumed that the
- implementations for <code><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a></code>,
- <code><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a></code>, etc. will have direct access to the
- internals of the <code><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code> implementation, so the only external
- interface needed is the <code><a href="../../../../com/google/inject/grapher/Renderer.html#render()">render()</a></code> call that <code><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></code>
- calls when it's done.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/Renderer.html#render()">render</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="render()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">render</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>IOException</td>
-            <td></td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/ShortNameFactory.html b/latest-javadoc/com/google/inject/grapher/ShortNameFactory.html
deleted file mode 100755
index bf20650..0000000
--- a/latest-javadoc/com/google/inject/grapher/ShortNameFactory.html
+++ /dev/null
@@ -1,1275 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ShortNameFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>ShortNameFactory</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.ShortNameFactory</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Reasonable implementation for <code><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></code>. Mostly takes various
- <code><a href="null#toString()">toString()</a></code>s and strips package names out of them so that
- they'll fit on the graph.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html#ShortNameFactory()">ShortNameFactory</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html#getAnnotationName(com.google.inject.Key<?>)">getAnnotationName</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html#getClassName(com.google.inject.Key<?>)">getClassName</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html#getInstanceName(java.lang.Object)">getInstanceName</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html#getMemberName(java.lang.reflect.Member)">getMemberName</a></span>(Member member)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html#getSourceName(java.lang.Object)">getSourceName</a></span>(Object source)</nobr>
-        
-        <div class="jd-descrdiv">Returns a name for a Guice "source" object.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html#getFileString(java.lang.StackTraceElement)">getFileString</a></span>(StackTraceElement stackTraceElement)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html#getMethodString(java.lang.reflect.Method)">getMethodString</a></span>(Method method)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.NameFactory" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.NameFactory-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/grapher/NameFactory.html">com.google.inject.grapher.NameFactory</a>
-
-<div id="inherited-methods-com.google.inject.grapher.NameFactory">
-  <div id="inherited-methods-com.google.inject.grapher.NameFactory-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.NameFactory-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getAnnotationName(com.google.inject.Key<?>)">getAnnotationName</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getClassName(com.google.inject.Key<?>)">getClassName</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getInstanceName(java.lang.Object)">getInstanceName</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getMemberName(java.lang.reflect.Member)">getMemberName</a></span>(Member member)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NameFactory.html#getSourceName(java.lang.Object)">getSourceName</a></span>(Object source)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="ShortNameFactory()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ShortNameFactory</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getAnnotationName(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getAnnotationName</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getClassName(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getClassName</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getInstanceName(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getInstanceName</span>
-      <span class="normal">(Object instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMemberName(java.lang.reflect.Member)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getMemberName</span>
-      <span class="normal">(Member member)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSourceName(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getSourceName</span>
-      <span class="normal">(Object source)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a name for a Guice "source" object. This will typically be either
- a StackTraceElement for when the binding is made to the instance,
- or a Method when a provider method is used.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="getFileString(java.lang.StackTraceElement)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getFileString</span>
-      <span class="normal">(StackTraceElement stackTraceElement)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMethodString(java.lang.reflect.Method)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getMethodString</span>
-      <span class="normal">(Method method)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/StringNodeIdFactory.html b/latest-javadoc/com/google/inject/grapher/StringNodeIdFactory.html
deleted file mode 100755
index d664139..0000000
--- a/latest-javadoc/com/google/inject/grapher/StringNodeIdFactory.html
+++ /dev/null
@@ -1,959 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  StringNodeIdFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>StringNodeIdFactory</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.StringNodeIdFactory</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>IdFactory implementation that for String node IDs. The IDs
- are comprised of letters, numbers and underscores.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html#StringNodeIdFactory()">StringNodeIdFactory</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html#getClassNodeId(com.google.inject.Key<?>)">getClassNodeId</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html#getInstanceNodeId(com.google.inject.Key<?>)">getInstanceNodeId</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.NodeIdFactory" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.NodeIdFactory-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/grapher/NodeIdFactory.html">com.google.inject.grapher.NodeIdFactory</a>
-
-<div id="inherited-methods-com.google.inject.grapher.NodeIdFactory">
-  <div id="inherited-methods-com.google.inject.grapher.NodeIdFactory-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.NodeIdFactory-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            K</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html#getClassNodeId(com.google.inject.Key<?>)">getClassNodeId</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            K</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html#getInstanceNodeId(com.google.inject.Key<?>)">getInstanceNodeId</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="StringNodeIdFactory()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">StringNodeIdFactory</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getClassNodeId(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getClassNodeId</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getInstanceNodeId(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getInstanceNodeId</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/TransitiveDependencyVisitor.html b/latest-javadoc/com/google/inject/grapher/TransitiveDependencyVisitor.html
deleted file mode 100755
index c98387e..0000000
--- a/latest-javadoc/com/google/inject/grapher/TransitiveDependencyVisitor.html
+++ /dev/null
@@ -1,1435 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  TransitiveDependencyVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>TransitiveDependencyVisitor</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.TransitiveDependencyVisitor</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p><code><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> that returns a Collection of the
- <code><a href="../../../../com/google/inject/Key.html">Key</a></code>s of each Binding's dependencies. Used by
- InjectorGropher to walk the dependency graph from a starting set of
- Bindings.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#TransitiveDependencyVisitor()">TransitiveDependencyVisitor</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#visit(com.google.inject.spi.ConstructorBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&gt; binding)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&gt; binding)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#visit(com.google.inject.spi.ExposedBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&gt; binding)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#visit(com.google.inject.spi.InstanceBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&gt; binding)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&gt; binding)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#visit(com.google.inject.spi.ProviderBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&gt; binding)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&gt; binding)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&gt; binding)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html#visit(com.google.inject.spi.UntargettedBinding<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&gt; binding)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.BindingTargetVisitor" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">com.google.inject.spi.BindingTargetVisitor</a>
-
-<div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor">
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConstructorBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a constructor binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding created from converting a bound instance to a new type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ExposedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a key exposed from an enclosed private environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.InstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a linked key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.UntargettedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an untargetted binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="TransitiveDependencyVisitor()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">TransitiveDependencyVisitor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visit(com.google.inject.spi.ConstructorBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ConvertedConstantBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ExposedBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.InstanceBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.LinkedKeyBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderInstanceBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderKeyBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.UntargettedBinding<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Collection&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/ArrowType.html b/latest-javadoc/com/google/inject/grapher/graphviz/ArrowType.html
deleted file mode 100755
index 01c3617..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/ArrowType.html
+++ /dev/null
@@ -1,1713 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  ArrowType
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-  <a href="#enumconstants">Enums</a>
-  
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    enum
-<h1>ArrowType</h1>
-
-
-
-  
-  
-  
-
-  
-    extends Enum&lt;E&nbsp;extends&nbsp;Enum&lt;E&gt;&gt;<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Enum&lt;E&nbsp;extends&nbsp;java.lang.Enum&lt;E&gt;&gt;</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.ArrowType</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Arrow symbols that are available from Graphviz. These can be composed by
- concatenation to make double arrows and such.
- <p>
- See: http://www.graphviz.org/doc/info/arrows.html</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">BOX&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">BOX_OPEN&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">CROW&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">DIAMOND&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">DIAMOND_OPEN&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">DOT&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">DOT_OPEN&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">INVERTED&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">INVERTED_OPEN&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">NONE&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">NORMAL&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">NORMAL_OPEN&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">TEE&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&nbsp;</td>
-        <td class="jd-linkcol">VEE&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html#valueOf(java.lang.String)">valueOf</a></span>(String name)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType[]</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html#values()">values</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Enum" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Enum-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Enum
-
-<div id="inherited-methods-java.lang.Enum">
-  <div id="inherited-methods-java.lang.Enum-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Enum-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(E arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;E&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getDeclaringClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">name</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">ordinal</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&nbsp;extends&nbsp;Enum&lt;T&gt;&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">valueOf</span>(Class&lt;T&gt; arg0, String arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Comparable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Comparable-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.Comparable
-
-<div id="inherited-methods-java.lang.Comparable">
-  <div id="inherited-methods-java.lang.Comparable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Comparable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(T arg0)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Enum Values</h2>
-
-
-
-
-<A NAME="BOX"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        BOX
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="BOX_OPEN"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        BOX_OPEN
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="CROW"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        CROW
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="DIAMOND"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        DIAMOND
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="DIAMOND_OPEN"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        DIAMOND_OPEN
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="DOT"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        DOT
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="DOT_OPEN"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        DOT_OPEN
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="INVERTED"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        INVERTED
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="INVERTED_OPEN"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        INVERTED_OPEN
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="NONE"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        NONE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="NORMAL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        NORMAL
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="NORMAL_OPEN"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        NORMAL_OPEN
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="TEE"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        TEE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="VEE"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-        VEE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="valueOf(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>
-      </span>
-      <span class="sympad">valueOf</span>
-      <span class="normal">(String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="values()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType[]</a>
-      </span>
-      <span class="sympad">values</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html b/latest-javadoc/com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html
deleted file mode 100755
index a40fa97..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html
+++ /dev/null
@@ -1,957 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  BindingEdgeFactory.GraphvizEdgeAdaptor
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-  <a href="#lfields">Fields</a>
-  
-
-
-
-  &#124; <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    protected
-     
-     
-    
-    class
-<h1>BindingEdgeFactory.GraphvizEdgeAdaptor</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.BindingEdgeFactory.GraphvizEdgeAdaptor</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.
-</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-    
-      <tr class="alt-color api apilevel-Guice_3.0" >
-          <td class="jd-typecol"><nobr>
-          protected
-          
-          final
-          <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></nobr></td>
-          <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html#edge">edge</a></td>
-          <td class="jd-descrcol" width="100%"></td>
-      </tr>
-      
-    
-
-</table>
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html#BindingEdgeFactory.GraphvizEdgeAdaptor(com.google.inject.grapher.graphviz.GraphvizEdge)">BindingEdgeFactory.GraphvizEdgeAdaptor</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html#setType(com.google.inject.grapher.BindingEdge.Type)">setType</a></span>(<a href="../../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a> type)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.BindingEdge" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.BindingEdge-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/BindingEdge.html">com.google.inject.grapher.BindingEdge</a>
-
-<div id="inherited-methods-com.google.inject.grapher.BindingEdge">
-  <div id="inherited-methods-com.google.inject.grapher.BindingEdge-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.BindingEdge-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/BindingEdge.html#setType(com.google.inject.grapher.BindingEdge.Type)">setType</a></span>(<a href="../../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a> type)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="edge"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a>
-      </span>
-        edge
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="BindingEdgeFactory.GraphvizEdgeAdaptor(com.google.inject.grapher.graphviz.GraphvizEdge)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">BindingEdgeFactory.GraphvizEdgeAdaptor</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="setType(com.google.inject.grapher.BindingEdge.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setType</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a> type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/BindingEdgeFactory.html b/latest-javadoc/com/google/inject/grapher/graphviz/BindingEdgeFactory.html
deleted file mode 100755
index dfd420b..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/BindingEdgeFactory.html
+++ /dev/null
@@ -1,986 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  BindingEdgeFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>BindingEdgeFactory</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.BindingEdgeFactory</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Graphviz-specific implementation of <code><a href="../../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a></code>. Uses a
- <code><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></code> to delegate to a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_3.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        class</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></td>
-      <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html#BindingEdgeFactory(com.google.inject.grapher.graphviz.GraphvizRenderer)">BindingEdgeFactory</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a> renderer)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html#newBindingEdge(java.lang.String, java.lang.String)">newBindingEdge</a></span>(String fromId, String toId)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html#newAdaptor(com.google.inject.grapher.graphviz.GraphvizEdge)">newAdaptor</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.BindingEdge.Factory" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.BindingEdge.Factory-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/BindingEdge.Factory.html">com.google.inject.grapher.BindingEdge.Factory</a>
-
-<div id="inherited-methods-com.google.inject.grapher.BindingEdge.Factory">
-  <div id="inherited-methods-com.google.inject.grapher.BindingEdge.Factory-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.BindingEdge.Factory-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/BindingEdge.Factory.html#newBindingEdge(K, K)">newBindingEdge</a></span>(K fromId, K toId)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> instance and adds it to the graph.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="BindingEdgeFactory(com.google.inject.grapher.graphviz.GraphvizRenderer)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">BindingEdgeFactory</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a> renderer)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="newBindingEdge(java.lang.String, java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;String&gt;
-      </span>
-      <span class="sympad">newBindingEdge</span>
-      <span class="normal">(String fromId, String toId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="newAdaptor(com.google.inject.grapher.graphviz.GraphvizEdge)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a>
-      </span>
-      <span class="sympad">newAdaptor</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/CompassPoint.html b/latest-javadoc/com/google/inject/grapher/graphviz/CompassPoint.html
deleted file mode 100755
index 061350c..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/CompassPoint.html
+++ /dev/null
@@ -1,1557 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  CompassPoint
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-  <a href="#enumconstants">Enums</a>
-  
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    enum
-<h1>CompassPoint</h1>
-
-
-
-  
-  
-  
-
-  
-    extends Enum&lt;E&nbsp;extends&nbsp;Enum&lt;E&gt;&gt;<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Enum&lt;E&nbsp;extends&nbsp;java.lang.Enum&lt;E&gt;&gt;</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.CompassPoint</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Enum for the "compass point" values used to control where edge
- end points appear on the graph.
- <p>
- See: http://www.graphviz.org/doc/info/attrs.html#k:portPos</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">CENTER&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">EAST&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">EXTERIOR_SIDE&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">NORTH&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">NORTH_EAST&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">NORTH_WEST&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">SOUTH&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">SOUTH_EAST&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">SOUTH_WEST&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>&nbsp;</td>
-        <td class="jd-linkcol">WEST&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html#valueOf(java.lang.String)">valueOf</a></span>(String name)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint[]</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html#values()">values</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Enum" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Enum-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Enum
-
-<div id="inherited-methods-java.lang.Enum">
-  <div id="inherited-methods-java.lang.Enum-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Enum-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(E arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;E&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getDeclaringClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">name</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">ordinal</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&nbsp;extends&nbsp;Enum&lt;T&gt;&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">valueOf</span>(Class&lt;T&gt; arg0, String arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Comparable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Comparable-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.Comparable
-
-<div id="inherited-methods-java.lang.Comparable">
-  <div id="inherited-methods-java.lang.Comparable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Comparable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(T arg0)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Enum Values</h2>
-
-
-
-
-<A NAME="CENTER"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        CENTER
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="EAST"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        EAST
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="EXTERIOR_SIDE"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        EXTERIOR_SIDE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="NORTH"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        NORTH
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="NORTH_EAST"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        NORTH_EAST
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="NORTH_WEST"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        NORTH_WEST
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="SOUTH"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        SOUTH
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="SOUTH_EAST"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        SOUTH_EAST
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="SOUTH_WEST"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        SOUTH_WEST
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="WEST"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-        WEST
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="valueOf(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-      <span class="sympad">valueOf</span>
-      <span class="normal">(String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="values()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint[]</a>
-      </span>
-      <span class="sympad">values</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html b/latest-javadoc/com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html
deleted file mode 100755
index a13ec3b..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html
+++ /dev/null
@@ -1,849 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  DependencyEdgeFactory.GraphvizEdgeAdaptor
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-  <a href="#lfields">Fields</a>
-  
-
-
-
-  &#124; <a href="#pubctors">Ctors</a>
-  
-
-
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    protected
-     
-     
-    
-    class
-<h1>DependencyEdgeFactory.GraphvizEdgeAdaptor</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.DependencyEdgeFactory.GraphvizEdgeAdaptor</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.
-</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-    
-      <tr class="alt-color api apilevel-Guice_3.0" >
-          <td class="jd-typecol"><nobr>
-          protected
-          
-          final
-          <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></nobr></td>
-          <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html#edge">edge</a></td>
-          <td class="jd-descrcol" width="100%"></td>
-      </tr>
-      
-    
-
-</table>
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html#DependencyEdgeFactory.GraphvizEdgeAdaptor(com.google.inject.grapher.graphviz.GraphvizEdge)">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="edge"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a>
-      </span>
-        edge
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="DependencyEdgeFactory.GraphvizEdgeAdaptor(com.google.inject.grapher.graphviz.GraphvizEdge)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">DependencyEdgeFactory.GraphvizEdgeAdaptor</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/DependencyEdgeFactory.html b/latest-javadoc/com/google/inject/grapher/graphviz/DependencyEdgeFactory.html
deleted file mode 100755
index ce151c8..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/DependencyEdgeFactory.html
+++ /dev/null
@@ -1,986 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  DependencyEdgeFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>DependencyEdgeFactory</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.DependencyEdgeFactory</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Graphviz-specific implementation of <code><a href="../../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a></code>. Uses a
- <code><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></code> to delegate to a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_3.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        class</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></td>
-      <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html#DependencyEdgeFactory(com.google.inject.grapher.graphviz.GraphvizRenderer, com.google.inject.grapher.graphviz.PortIdFactory)">DependencyEdgeFactory</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a> renderer, <a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a> portIdFactory)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html#newDependencyEdge(java.lang.String, com.google.inject.spi.InjectionPoint, java.lang.String)">newDependencyEdge</a></span>(String fromId, <a href="../../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a> fromPoint, String toId)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html#newAdaptor(com.google.inject.grapher.graphviz.GraphvizEdge)">newAdaptor</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.DependencyEdge.Factory" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.DependencyEdge.Factory-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/DependencyEdge.Factory.html">com.google.inject.grapher.DependencyEdge.Factory</a>
-
-<div id="inherited-methods-com.google.inject.grapher.DependencyEdge.Factory">
-  <div id="inherited-methods-com.google.inject.grapher.DependencyEdge.Factory-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.DependencyEdge.Factory-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/DependencyEdge.Factory.html#newDependencyEdge(K, com.google.inject.spi.InjectionPoint, K)">newDependencyEdge</a></span>(K fromId, <a href="../../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a> fromPoint, K toId)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> and adds it to the graph.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="DependencyEdgeFactory(com.google.inject.grapher.graphviz.GraphvizRenderer, com.google.inject.grapher.graphviz.PortIdFactory)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">DependencyEdgeFactory</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a> renderer, <a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a> portIdFactory)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="newDependencyEdge(java.lang.String, com.google.inject.spi.InjectionPoint, java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;String&gt;
-      </span>
-      <span class="sympad">newDependencyEdge</span>
-      <span class="normal">(String fromId, <a href="../../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a> fromPoint, String toId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="newAdaptor(com.google.inject.grapher.graphviz.GraphvizEdge)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a>
-      </span>
-      <span class="sympad">newAdaptor</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/EdgeStyle.html b/latest-javadoc/com/google/inject/grapher/graphviz/EdgeStyle.html
deleted file mode 100755
index c6c19e1..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/EdgeStyle.html
+++ /dev/null
@@ -1,1361 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  EdgeStyle
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-  <a href="#enumconstants">Enums</a>
-  
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    enum
-<h1>EdgeStyle</h1>
-
-
-
-  
-  
-  
-
-  
-    extends Enum&lt;E&nbsp;extends&nbsp;Enum&lt;E&gt;&gt;<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Enum&lt;E&nbsp;extends&nbsp;java.lang.Enum&lt;E&gt;&gt;</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.EdgeStyle</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Styles for edges.
- <p>
- See: http://www.graphviz.org/doc/info/attrs.html#k:style</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">BOLD&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">DASHED&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">DOTTED&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">INVISIBLE&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">SOLID&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html#valueOf(java.lang.String)">valueOf</a></span>(String name)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle[]</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html#values()">values</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Enum" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Enum-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Enum
-
-<div id="inherited-methods-java.lang.Enum">
-  <div id="inherited-methods-java.lang.Enum-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Enum-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(E arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;E&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getDeclaringClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">name</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">ordinal</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&nbsp;extends&nbsp;Enum&lt;T&gt;&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">valueOf</span>(Class&lt;T&gt; arg0, String arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Comparable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Comparable-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.Comparable
-
-<div id="inherited-methods-java.lang.Comparable">
-  <div id="inherited-methods-java.lang.Comparable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Comparable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(T arg0)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Enum Values</h2>
-
-
-
-
-<A NAME="BOLD"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>
-      </span>
-        BOLD
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="DASHED"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>
-      </span>
-        DASHED
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="DOTTED"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>
-      </span>
-        DOTTED
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="INVISIBLE"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>
-      </span>
-        INVISIBLE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="SOLID"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>
-      </span>
-        SOLID
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="valueOf(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>
-      </span>
-      <span class="sympad">valueOf</span>
-      <span class="normal">(String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="values()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle[]</a>
-      </span>
-      <span class="sympad">values</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/GraphvizEdge.html b/latest-javadoc/com/google/inject/grapher/graphviz/GraphvizEdge.html
deleted file mode 100755
index e414d3a..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/GraphvizEdge.html
+++ /dev/null
@@ -1,1575 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  GraphvizEdge
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>GraphvizEdge</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.GraphvizEdge</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Data object to encapsulate the attributes of Graphviz edges that we're
- interested in drawing.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#GraphvizEdge(java.lang.String, java.lang.String)">GraphvizEdge</a></span>(String tailNodeId, String headNodeId)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#getArrowHead()">getArrowHead</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#getArrowTail()">getArrowTail</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#getHeadCompassPoint()">getHeadCompassPoint</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#getHeadNodeId()">getHeadNodeId</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#getHeadPortId()">getHeadPortId</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#getStyle()">getStyle</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#getTailCompassPoint()">getTailCompassPoint</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#getTailNodeId()">getTailNodeId</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#getTailPortId()">getTailPortId</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#setArrowHead(java.util.List<com.google.inject.grapher.graphviz.ArrowType>)">setArrowHead</a></span>(List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt; arrowHead)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#setArrowTail(java.util.List<com.google.inject.grapher.graphviz.ArrowType>)">setArrowTail</a></span>(List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt; arrowTail)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#setHeadCompassPoint(com.google.inject.grapher.graphviz.CompassPoint)">setHeadCompassPoint</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a> headCompassPoint)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#setHeadPortId(java.lang.String)">setHeadPortId</a></span>(String headPortId)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#setStyle(com.google.inject.grapher.graphviz.EdgeStyle)">setStyle</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a> style)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#setTailCompassPoint(com.google.inject.grapher.graphviz.CompassPoint)">setTailCompassPoint</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a> tailCompassPoint)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html#setTailPortId(java.lang.String)">setTailPortId</a></span>(String tailPortId)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="GraphvizEdge(java.lang.String, java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">GraphvizEdge</span>
-      <span class="normal">(String tailNodeId, String headNodeId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getArrowHead()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt;
-      </span>
-      <span class="sympad">getArrowHead</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getArrowTail()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt;
-      </span>
-      <span class="sympad">getArrowTail</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getHeadCompassPoint()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-      <span class="sympad">getHeadCompassPoint</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getHeadNodeId()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getHeadNodeId</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getHeadPortId()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getHeadPortId</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getStyle()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a>
-      </span>
-      <span class="sympad">getStyle</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTailCompassPoint()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a>
-      </span>
-      <span class="sympad">getTailCompassPoint</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTailNodeId()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getTailNodeId</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTailPortId()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getTailPortId</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setArrowHead(java.util.List<com.google.inject.grapher.graphviz.ArrowType>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setArrowHead</span>
-      <span class="normal">(List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt; arrowHead)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setArrowTail(java.util.List<com.google.inject.grapher.graphviz.ArrowType>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setArrowTail</span>
-      <span class="normal">(List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt; arrowTail)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setHeadCompassPoint(com.google.inject.grapher.graphviz.CompassPoint)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setHeadCompassPoint</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a> headCompassPoint)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setHeadPortId(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setHeadPortId</span>
-      <span class="normal">(String headPortId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setStyle(com.google.inject.grapher.graphviz.EdgeStyle)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setStyle</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a> style)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setTailCompassPoint(com.google.inject.grapher.graphviz.CompassPoint)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setTailCompassPoint</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a> tailCompassPoint)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setTailPortId(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setTailPortId</span>
-      <span class="normal">(String tailPortId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/GraphvizModule.html b/latest-javadoc/com/google/inject/grapher/graphviz/GraphvizModule.html
deleted file mode 100755
index bbf68bd..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/GraphvizModule.html
+++ /dev/null
@@ -1,1335 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  GraphvizModule
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>GraphvizModule</h1>
-
-
-
-  
-  
-  
-
-  
-    extends <a href="../../../../../com/google/inject/AbstractModule.html">AbstractModule</a><br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell"><a href="../../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a></td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.GraphvizModule</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Module that provides <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></code> as the <code><a href="../../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code> and
- binds the other Graphviz factories.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html#GraphvizModule()">GraphvizModule</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.AbstractModule" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.AbstractModule-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  <a href="../../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a>
-
-<div id="inherited-methods-com.google.inject.AbstractModule">
-  <div id="inherited-methods-com.google.inject.AbstractModule-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.AbstractModule-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.Key<T>)">bind</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.TypeLiteral<T>)">bind</a></span>(<a href="../../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bind(java.lang.Class<T>)">bind</a></span>(Class&lt;T&gt; clazz)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bindConstant()">bindConstant</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener</a></span>(<a href="../../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation, <a href="../../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#binder()">binder</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets direct access to the underlying <code>Binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../../com/google/inject/Binder.html">Binder</a> builder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes</a></span>(<a href="../../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#currentStage()">currentStage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#install(com.google.inject.Module)">install</a></span>(<a href="../../../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#requestInjection(java.lang.Object)">requestInjection</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection</a></span>(Class...&lt;?&gt; types)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#requireBinding(com.google.inject.Key<?>)">requireBinding</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>key</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#requireBinding(java.lang.Class<?>)">requireBinding</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>type</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Module" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Module-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/Module.html">com.google.inject.Module</a>
-
-<div id="inherited-methods-com.google.inject.Module">
-  <div id="inherited-methods-com.google.inject.Module-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Module-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/Module.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="GraphvizModule()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">GraphvizModule</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="configure()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">configure</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Configures a <code><a href="../../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/GraphvizNode.html b/latest-javadoc/com/google/inject/grapher/graphviz/GraphvizNode.html
deleted file mode 100755
index 717b350..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/GraphvizNode.html
+++ /dev/null
@@ -1,1526 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  GraphvizNode
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>GraphvizNode</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.GraphvizNode</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Data object to encapsulate the attributes of Graphviz nodes that we're
- interested in drawing.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#GraphvizNode(java.lang.String)">GraphvizNode</a></span>(String nodeId)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#addField(java.lang.String, java.lang.String)">addField</a></span>(String portId, String title)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#addSubtitle(int, java.lang.String)">addSubtitle</a></span>(int position, String subtitle)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Map&lt;String,&nbsp;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#getFields()">getFields</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#getHeaderBackgroundColor()">getHeaderBackgroundColor</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#getHeaderTextColor()">getHeaderTextColor</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#getNodeId()">getNodeId</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#getShape()">getShape</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#getStyle()">getStyle</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            List&lt;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#getSubtitles()">getSubtitles</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#getTitle()">getTitle</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#setHeaderBackgroundColor(java.lang.String)">setHeaderBackgroundColor</a></span>(String headerBackgroundColor)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#setHeaderTextColor(java.lang.String)">setHeaderTextColor</a></span>(String headerTextColor)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#setShape(com.google.inject.grapher.graphviz.NodeShape)">setShape</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a> shape)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#setStyle(com.google.inject.grapher.graphviz.NodeStyle)">setStyle</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a> style)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html#setTitle(java.lang.String)">setTitle</a></span>(String title)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="GraphvizNode(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">GraphvizNode</span>
-      <span class="normal">(String nodeId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="addField(java.lang.String, java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">addField</span>
-      <span class="normal">(String portId, String title)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="addSubtitle(int, java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">addSubtitle</span>
-      <span class="normal">(int position, String subtitle)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getFields()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Map&lt;String,&nbsp;String&gt;
-      </span>
-      <span class="sympad">getFields</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getHeaderBackgroundColor()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getHeaderBackgroundColor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getHeaderTextColor()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getHeaderTextColor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getNodeId()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getNodeId</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getShape()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a>
-      </span>
-      <span class="sympad">getShape</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getStyle()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-      <span class="sympad">getStyle</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSubtitles()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        List&lt;String&gt;
-      </span>
-      <span class="sympad">getSubtitles</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTitle()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getTitle</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setHeaderBackgroundColor(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setHeaderBackgroundColor</span>
-      <span class="normal">(String headerBackgroundColor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setHeaderTextColor(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setHeaderTextColor</span>
-      <span class="normal">(String headerTextColor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setShape(com.google.inject.grapher.graphviz.NodeShape)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setShape</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a> shape)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setStyle(com.google.inject.grapher.graphviz.NodeStyle)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setStyle</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a> style)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setTitle(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setTitle</span>
-      <span class="normal">(String title)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/GraphvizRenderer.html b/latest-javadoc/com/google/inject/grapher/graphviz/GraphvizRenderer.html
deleted file mode 100755
index 6f55bc0..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/GraphvizRenderer.html
+++ /dev/null
@@ -1,1812 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  GraphvizRenderer
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>GraphvizRenderer</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt; 
-      
-        <a href="../../../../../com/google/inject/grapher/Renderer.html">Renderer</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.GraphvizRenderer</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p><code><a href="../../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code> implementation that writes out a Graphviz DOT file of the
- graph. Bound in <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></code>.
- <p>
- Specify the PrintWriter to output to with
- <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#setOut(java.io.PrintWriter)">setOut(PrintWriter)</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#GraphvizRenderer()">GraphvizRenderer</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#addEdge(com.google.inject.grapher.graphviz.GraphvizEdge)">addEdge</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#addNode(com.google.inject.grapher.graphviz.GraphvizNode)">addNode</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#newAlias(java.lang.String, java.lang.String)">newAlias</a></span>(String fromId, String toId)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#render()">render</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#setOut(java.io.PrintWriter)">setOut</a></span>(PrintWriter out)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#setRankdir(java.lang.String)">setRankdir</a></span>(String rankdir)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#finish()">finish</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#getArrowString(java.util.List<com.google.inject.grapher.graphviz.ArrowType>)">getArrowString</a></span>(List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt; arrows)</nobr>
-        
-        <div class="jd-descrdiv">Turns a List of <code><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></code>s into a String that
- represents combining them.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Map&lt;String,&nbsp;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#getEdgeAttributes(com.google.inject.grapher.graphviz.GraphvizEdge)">getEdgeAttributes</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#getEdgeEndPoint(java.lang.String, java.lang.String, com.google.inject.grapher.graphviz.CompassPoint)">getEdgeEndPoint</a></span>(String nodeId, String portId, <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a> compassPoint)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Map&lt;String,&nbsp;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#getGraphAttributes()">getGraphAttributes</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Map&lt;String,&nbsp;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#getNodeAttributes(com.google.inject.grapher.graphviz.GraphvizNode)">getNodeAttributes</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#getNodeLabel(com.google.inject.grapher.graphviz.GraphvizNode)">getNodeLabel</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</nobr>
-        
-        <div class="jd-descrdiv">Creates the "label" for a node.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#htmlEscape(java.lang.String)">htmlEscape</a></span>(String str)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#renderEdge(com.google.inject.grapher.graphviz.GraphvizEdge)">renderEdge</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#renderNode(com.google.inject.grapher.graphviz.GraphvizNode)">renderNode</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#resolveAlias(java.lang.String)">resolveAlias</a></span>(String id)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html#start()">start</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.NodeAliasFactory" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.NodeAliasFactory-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/NodeAliasFactory.html">com.google.inject.grapher.NodeAliasFactory</a>
-
-<div id="inherited-methods-com.google.inject.grapher.NodeAliasFactory">
-  <div id="inherited-methods-com.google.inject.grapher.NodeAliasFactory-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.NodeAliasFactory-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/NodeAliasFactory.html#newAlias(K, K)">newAlias</a></span>(K fromId, K toId)</nobr>
-        
-        <div class="jd-descrdiv">Makes edges that would point to <code>fromId</code> point to
- <code>toId</code> instead.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.Renderer" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.Renderer-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/Renderer.html">com.google.inject.grapher.Renderer</a>
-
-<div id="inherited-methods-com.google.inject.grapher.Renderer">
-  <div id="inherited-methods-com.google.inject.grapher.Renderer-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.Renderer-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/Renderer.html#render()">render</a></span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="GraphvizRenderer()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">GraphvizRenderer</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="addEdge(com.google.inject.grapher.graphviz.GraphvizEdge)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">addEdge</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="addNode(com.google.inject.grapher.graphviz.GraphvizNode)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">addNode</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newAlias(java.lang.String, java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">newAlias</span>
-      <span class="normal">(String fromId, String toId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="render()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">render</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setOut(java.io.PrintWriter)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a>
-      </span>
-      <span class="sympad">setOut</span>
-      <span class="normal">(PrintWriter out)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setRankdir(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a>
-      </span>
-      <span class="sympad">setRankdir</span>
-      <span class="normal">(String rankdir)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="finish()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">finish</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getArrowString(java.util.List<com.google.inject.grapher.graphviz.ArrowType>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getArrowString</span>
-      <span class="normal">(List&lt;<a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a>&gt; arrows)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Turns a List of <code><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></code>s into a String that
- represents combining them. With Graphviz, that just means concatenating
- them.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getEdgeAttributes(com.google.inject.grapher.graphviz.GraphvizEdge)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        Map&lt;String,&nbsp;String&gt;
-      </span>
-      <span class="sympad">getEdgeAttributes</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getEdgeEndPoint(java.lang.String, java.lang.String, com.google.inject.grapher.graphviz.CompassPoint)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getEdgeEndPoint</span>
-      <span class="normal">(String nodeId, String portId, <a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a> compassPoint)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getGraphAttributes()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        Map&lt;String,&nbsp;String&gt;
-      </span>
-      <span class="sympad">getGraphAttributes</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getNodeAttributes(com.google.inject.grapher.graphviz.GraphvizNode)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        Map&lt;String,&nbsp;String&gt;
-      </span>
-      <span class="sympad">getNodeAttributes</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getNodeLabel(com.google.inject.grapher.graphviz.GraphvizNode)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getNodeLabel</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates the "label" for a node. This is a string of HTML that defines a
- table with a heading at the top and (in the case of
- <code><a href="../../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code>s) rows for each of the member fields.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="htmlEscape(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">htmlEscape</span>
-      <span class="normal">(String str)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="renderEdge(com.google.inject.grapher.graphviz.GraphvizEdge)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">renderEdge</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a> edge)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="renderNode(com.google.inject.grapher.graphviz.GraphvizNode)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">renderNode</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="resolveAlias(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">resolveAlias</span>
-      <span class="normal">(String id)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="start()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">start</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html b/latest-javadoc/com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html
deleted file mode 100755
index c0034b9..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html
+++ /dev/null
@@ -1,1164 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  ImplementationNodeFactory.GraphvizNodeAdaptor
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-  <a href="#lfields">Fields</a>
-  
-
-
-
-  &#124; <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    protected
-     
-     
-    
-    class
-<h1>ImplementationNodeFactory.GraphvizNodeAdaptor</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.ImplementationNodeFactory.GraphvizNodeAdaptor</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.
-</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-    
-      <tr class="alt-color api apilevel-Guice_3.0" >
-          <td class="jd-typecol"><nobr>
-          protected
-          
-          final
-          <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></nobr></td>
-          <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html#node">node</a></td>
-          <td class="jd-descrcol" width="100%"></td>
-      </tr>
-      
-    
-
-</table>
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html#ImplementationNodeFactory.GraphvizNodeAdaptor(com.google.inject.grapher.graphviz.GraphvizNode)">ImplementationNodeFactory.GraphvizNodeAdaptor</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html#addMember(java.lang.reflect.Member)">addMember</a></span>(Member member)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html#setClassKey(com.google.inject.Key<?>)">setClassKey</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Sets the <code><a href="../../../../../com/google/inject/Key.html">Key</a></code> that this node is for.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html#setInstance(java.lang.Object)">setInstance</a></span>(Object instance)</nobr>
-        
-        <div class="jd-descrdiv">Sets the Object that's the already-created instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html#setSource(java.lang.Object)">setSource</a></span>(Object source)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.ImplementationNode" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.ImplementationNode-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/ImplementationNode.html">com.google.inject.grapher.ImplementationNode</a>
-
-<div id="inherited-methods-com.google.inject.grapher.ImplementationNode">
-  <div id="inherited-methods-com.google.inject.grapher.ImplementationNode-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.ImplementationNode-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/ImplementationNode.html#addMember(java.lang.reflect.Member)">addMember</a></span>(Member member)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/ImplementationNode.html#setClassKey(com.google.inject.Key<?>)">setClassKey</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Sets the <code><a href="../../../../../com/google/inject/Key.html">Key</a></code> that this node is for.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/ImplementationNode.html#setInstance(java.lang.Object)">setInstance</a></span>(Object instance)</nobr>
-        
-        <div class="jd-descrdiv">Sets the Object that's the already-created instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/ImplementationNode.html#setSource(java.lang.Object)">setSource</a></span>(Object source)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="node"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a>
-      </span>
-        node
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="ImplementationNodeFactory.GraphvizNodeAdaptor(com.google.inject.grapher.graphviz.GraphvizNode)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ImplementationNodeFactory.GraphvizNodeAdaptor</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="addMember(java.lang.reflect.Member)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">addMember</span>
-      <span class="normal">(Member member)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setClassKey(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setClassKey</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Sets the <code><a href="../../../../../com/google/inject/Key.html">Key</a></code> that this node is for. Used when the node is
- representing a class that Guice will instantiate.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setInstance(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setInstance</span>
-      <span class="normal">(Object instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Sets the Object that's the already-created instance. Used when
- this node is represeting the instance instead of a class.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setSource(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setSource</span>
-      <span class="normal">(Object source)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/ImplementationNodeFactory.html b/latest-javadoc/com/google/inject/grapher/graphviz/ImplementationNodeFactory.html
deleted file mode 100755
index 8bd164e..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/ImplementationNodeFactory.html
+++ /dev/null
@@ -1,986 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  ImplementationNodeFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>ImplementationNodeFactory</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.ImplementationNodeFactory</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Graphviz-specific implementation of <code><a href="../../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a></code>. Uses
- a <code><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></code> to delegate to a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_3.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        class</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></td>
-      <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html#ImplementationNodeFactory(com.google.inject.grapher.graphviz.GraphvizRenderer, com.google.inject.grapher.NameFactory, com.google.inject.grapher.graphviz.PortIdFactory)">ImplementationNodeFactory</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a> renderer, <a href="../../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a> nameFactory, <a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a> portIdFactory)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html#newImplementationNode(java.lang.String)">newImplementationNode</a></span>(String nodeId)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html#newAdaptor(com.google.inject.grapher.graphviz.GraphvizNode)">newAdaptor</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.ImplementationNode.Factory" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.ImplementationNode.Factory-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/ImplementationNode.Factory.html">com.google.inject.grapher.ImplementationNode.Factory</a>
-
-<div id="inherited-methods-com.google.inject.grapher.ImplementationNode.Factory">
-  <div id="inherited-methods-com.google.inject.grapher.ImplementationNode.Factory-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.ImplementationNode.Factory-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/ImplementationNode.Factory.html#newImplementationNode(K)">newImplementationNode</a></span>(K nodeId)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> and adds it to the graph.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="ImplementationNodeFactory(com.google.inject.grapher.graphviz.GraphvizRenderer, com.google.inject.grapher.NameFactory, com.google.inject.grapher.graphviz.PortIdFactory)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ImplementationNodeFactory</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a> renderer, <a href="../../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a> nameFactory, <a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a> portIdFactory)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="newImplementationNode(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;String&gt;
-      </span>
-      <span class="sympad">newImplementationNode</span>
-      <span class="normal">(String nodeId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="newAdaptor(com.google.inject.grapher.graphviz.GraphvizNode)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a>
-      </span>
-      <span class="sympad">newAdaptor</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html b/latest-javadoc/com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html
deleted file mode 100755
index 2992f29..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html
+++ /dev/null
@@ -1,1022 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  InterfaceNodeFactory.GraphvizNodeAdaptor
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-  <a href="#lfields">Fields</a>
-  
-
-
-
-  &#124; <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    protected
-     
-     
-    
-    class
-<h1>InterfaceNodeFactory.GraphvizNodeAdaptor</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.InterfaceNodeFactory.GraphvizNodeAdaptor</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.
-</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-    
-      <tr class="alt-color api apilevel-Guice_3.0" >
-          <td class="jd-typecol"><nobr>
-          protected
-          
-          final
-          <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></nobr></td>
-          <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html#node">node</a></td>
-          <td class="jd-descrcol" width="100%"></td>
-      </tr>
-      
-    
-
-</table>
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html#InterfaceNodeFactory.GraphvizNodeAdaptor(com.google.inject.grapher.graphviz.GraphvizNode)">InterfaceNodeFactory.GraphvizNodeAdaptor</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html#setKey(com.google.inject.Key<?>)">setKey</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html#setSource(java.lang.Object)">setSource</a></span>(Object source)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.InterfaceNode" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.InterfaceNode-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/InterfaceNode.html">com.google.inject.grapher.InterfaceNode</a>
-
-<div id="inherited-methods-com.google.inject.grapher.InterfaceNode">
-  <div id="inherited-methods-com.google.inject.grapher.InterfaceNode-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.InterfaceNode-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/InterfaceNode.html#setKey(com.google.inject.Key<?>)">setKey</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/InterfaceNode.html#setSource(java.lang.Object)">setSource</a></span>(Object source)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="node"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a>
-      </span>
-        node
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="InterfaceNodeFactory.GraphvizNodeAdaptor(com.google.inject.grapher.graphviz.GraphvizNode)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">InterfaceNodeFactory.GraphvizNodeAdaptor</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a> node)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="setKey(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setKey</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="setSource(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">setSource</span>
-      <span class="normal">(Object source)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/InterfaceNodeFactory.html b/latest-javadoc/com/google/inject/grapher/graphviz/InterfaceNodeFactory.html
deleted file mode 100755
index cf0217b..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/InterfaceNodeFactory.html
+++ /dev/null
@@ -1,920 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  InterfaceNodeFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>InterfaceNodeFactory</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.InterfaceNodeFactory</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Graphviz-specific implementation of <code><a href="../../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a></code>. Uses
- a GraphvizEdgeAdaptor to delegate to a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_3.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        class</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></td>
-      <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html#InterfaceNodeFactory(com.google.inject.grapher.graphviz.GraphvizRenderer, com.google.inject.grapher.NameFactory)">InterfaceNodeFactory</a></span>(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a> renderer, <a href="../../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a> nameFactory)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html#newInterfaceNode(java.lang.String)">newInterfaceNode</a></span>(String nodeId)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.InterfaceNode.Factory" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.InterfaceNode.Factory-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/InterfaceNode.Factory.html">com.google.inject.grapher.InterfaceNode.Factory</a>
-
-<div id="inherited-methods-com.google.inject.grapher.InterfaceNode.Factory">
-  <div id="inherited-methods-com.google.inject.grapher.InterfaceNode.Factory-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.InterfaceNode.Factory-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/InterfaceNode.Factory.html#newInterfaceNode(K)">newInterfaceNode</a></span>(K nodeId)</nobr>
-        
-        <div class="jd-descrdiv">Creates a new <code><a href="../../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> and adds it to the graph.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="InterfaceNodeFactory(com.google.inject.grapher.graphviz.GraphvizRenderer, com.google.inject.grapher.NameFactory)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">InterfaceNodeFactory</span>
-      <span class="normal">(<a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a> renderer, <a href="../../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a> nameFactory)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="newInterfaceNode(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;String&gt;
-      </span>
-      <span class="sympad">newInterfaceNode</span>
-      <span class="normal">(String nodeId)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/NodeShape.html b/latest-javadoc/com/google/inject/grapher/graphviz/NodeShape.html
deleted file mode 100755
index b8c5aee..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/NodeShape.html
+++ /dev/null
@@ -1,1283 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  NodeShape
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-  <a href="#enumconstants">Enums</a>
-  
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    enum
-<h1>NodeShape</h1>
-
-
-
-  
-  
-  
-
-  
-    extends Enum&lt;E&nbsp;extends&nbsp;Enum&lt;E&gt;&gt;<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Enum&lt;E&nbsp;extends&nbsp;java.lang.Enum&lt;E&gt;&gt;</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.NodeShape</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Enum for the shapes that are most interesting for Guice graphing.
- <p>
- See: http://www.graphviz.org/doc/info/shapes.html</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a>&nbsp;</td>
-        <td class="jd-linkcol">BOX&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a>&nbsp;</td>
-        <td class="jd-linkcol">ELLIPSE&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a>&nbsp;</td>
-        <td class="jd-linkcol">NONE&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html#valueOf(java.lang.String)">valueOf</a></span>(String name)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape[]</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html#values()">values</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Enum" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Enum-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Enum
-
-<div id="inherited-methods-java.lang.Enum">
-  <div id="inherited-methods-java.lang.Enum-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Enum-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(E arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;E&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getDeclaringClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">name</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">ordinal</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&nbsp;extends&nbsp;Enum&lt;T&gt;&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">valueOf</span>(Class&lt;T&gt; arg0, String arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Comparable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Comparable-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.Comparable
-
-<div id="inherited-methods-java.lang.Comparable">
-  <div id="inherited-methods-java.lang.Comparable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Comparable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(T arg0)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Enum Values</h2>
-
-
-
-
-<A NAME="BOX"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a>
-      </span>
-        BOX
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="ELLIPSE"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a>
-      </span>
-        ELLIPSE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="NONE"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a>
-      </span>
-        NONE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="valueOf(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a>
-      </span>
-      <span class="sympad">valueOf</span>
-      <span class="normal">(String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="values()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape[]</a>
-      </span>
-      <span class="sympad">values</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/NodeStyle.html b/latest-javadoc/com/google/inject/grapher/graphviz/NodeStyle.html
deleted file mode 100755
index b0aa3d4..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/NodeStyle.html
+++ /dev/null
@@ -1,1478 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  NodeStyle
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-  <a href="#enumconstants">Enums</a>
-  
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    enum
-<h1>NodeStyle</h1>
-
-
-
-  
-  
-  
-
-  
-    extends Enum&lt;E&nbsp;extends&nbsp;Enum&lt;E&gt;&gt;<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Enum&lt;E&nbsp;extends&nbsp;java.lang.Enum&lt;E&gt;&gt;</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.NodeStyle</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Styles for nodes. Similar to <code><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></code> but with a few more options.
- <p>
- See: http://www.graphviz.org/doc/info/attrs.html#k:style</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">BOLD&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">DASHED&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">DIAGONALS&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">DOTTED&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">FILLED&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">INVISIBLE&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">ROUNDED&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>&nbsp;</td>
-        <td class="jd-linkcol">SOLID&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html#valueOf(java.lang.String)">valueOf</a></span>(String name)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            static
-            
-            <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle[]</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html#values()">values</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Enum" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Enum-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Enum
-
-<div id="inherited-methods-java.lang.Enum">
-  <div id="inherited-methods-java.lang.Enum-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Enum-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(E arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;E&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getDeclaringClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">name</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">ordinal</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&nbsp;extends&nbsp;Enum&lt;T&gt;&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">valueOf</span>(Class&lt;T&gt; arg0, String arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Comparable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Comparable-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.Comparable
-
-<div id="inherited-methods-java.lang.Comparable">
-  <div id="inherited-methods-java.lang.Comparable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Comparable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(T arg0)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Enum Values</h2>
-
-
-
-
-<A NAME="BOLD"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-        BOLD
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="DASHED"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-        DASHED
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="DIAGONALS"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-        DIAGONALS
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="DOTTED"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-        DOTTED
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="FILLED"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-        FILLED
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="INVISIBLE"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-        INVISIBLE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="ROUNDED"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-        ROUNDED
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="SOLID"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-        SOLID
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="valueOf(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a>
-      </span>
-      <span class="sympad">valueOf</span>
-      <span class="normal">(String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="values()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-         
-         
-        <a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle[]</a>
-      </span>
-      <span class="sympad">values</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/PortIdFactory.html b/latest-javadoc/com/google/inject/grapher/graphviz/PortIdFactory.html
deleted file mode 100755
index 865df19..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/PortIdFactory.html
+++ /dev/null
@@ -1,571 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  PortIdFactory
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>PortIdFactory</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.PortIdFactory</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></td>
-              <td class="jd-descrcol" width="100%">Implementation of <code><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Interface for a service that returns Graphviz port IDs, used for naming the
- rows in ImplementationNode-displaying <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>s.
- Implemented by <code><a href="../../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html#getPortId(java.lang.reflect.Member)">getPortId</a></span>(Member member)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getPortId(java.lang.reflect.Member)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getPortId</span>
-      <span class="normal">(Member member)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/PortIdFactoryImpl.html b/latest-javadoc/com/google/inject/grapher/graphviz/PortIdFactoryImpl.html
deleted file mode 100755
index 9062f93..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/PortIdFactoryImpl.html
+++ /dev/null
@@ -1,893 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  PortIdFactoryImpl
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>PortIdFactoryImpl</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.grapher.graphviz.PortIdFactoryImpl</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Implementation of <code><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></code>. Bound in <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html#PortIdFactoryImpl()">PortIdFactoryImpl</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html#getPortId(java.lang.reflect.Member)">getPortId</a></span>(Member member)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.grapher.graphviz.PortIdFactory" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.grapher.graphviz.PortIdFactory-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">com.google.inject.grapher.graphviz.PortIdFactory</a>
-
-<div id="inherited-methods-com.google.inject.grapher.graphviz.PortIdFactory">
-  <div id="inherited-methods-com.google.inject.grapher.graphviz.PortIdFactory-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.grapher.graphviz.PortIdFactory-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html#getPortId(java.lang.reflect.Member)">getPortId</a></span>(Member member)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="PortIdFactoryImpl()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">PortIdFactoryImpl</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getPortId(java.lang.reflect.Member)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getPortId</span>
-      <span class="normal">(Member member)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/package-descr.html b/latest-javadoc/com/google/inject/grapher/graphviz/package-descr.html
deleted file mode 100755
index 10f45a0..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/package-descr.html
+++ /dev/null
@@ -1,316 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  com.google.inject.grapher.graphviz Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.grapher.graphviz</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<div class="jd-descr">
-<p></p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/graphviz/package-summary.html b/latest-javadoc/com/google/inject/grapher/graphviz/package-summary.html
deleted file mode 100755
index 07597f0..0000000
--- a/latest-javadoc/com/google/inject/grapher/graphviz/package-summary.html
+++ /dev/null
@@ -1,440 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  com.google.inject.grapher.graphviz
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.grapher.graphviz</h1>
-  <div class="jd-nav">
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></td>
-              <td class="jd-descrcol" width="100%">Interface for a service that returns Graphviz port IDs, used for naming the
- rows in ImplementationNode-displaying <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>s.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a></td>
-              <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="../../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a></td>
-              <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a></td>
-              <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="../../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a></td>
-              <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a></td>
-              <td class="jd-descrcol" width="100%">Data object to encapsulate the attributes of Graphviz edges that we're
- interested in drawing.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a></td>
-              <td class="jd-descrcol" width="100%">Module that provides <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></code> as the <code><a href="../../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code> and
- binds the other Graphviz factories.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></td>
-              <td class="jd-descrcol" width="100%">Data object to encapsulate the attributes of Graphviz nodes that we're
- interested in drawing.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a></td>
-              <td class="jd-descrcol" width="100%"><code><a href="../../../../../com/google/inject/grapher/Renderer.html">Renderer</a></code> implementation that writes out a Graphviz DOT file of the
- graph.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a></td>
-              <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="../../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a></td>
-              <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a></td>
-              <td class="jd-descrcol" width="100%">Graphviz-specific implementation of <code><a href="../../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a></td>
-              <td class="jd-descrcol" width="100%">Adaptor class that converts <code><a href="../../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code> methods to display
- operations on a <code><a href="../../../../../com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a></td>
-              <td class="jd-descrcol" width="100%">Implementation of <code><a href="../../../../../com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Enums</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/ArrowType.html">ArrowType</a></td>
-              <td class="jd-descrcol" width="100%">Arrow symbols that are available from Graphviz.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/CompassPoint.html">CompassPoint</a></td>
-              <td class="jd-descrcol" width="100%">Enum for the "compass point" values used to control where edge
- end points appear on the graph.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/EdgeStyle.html">EdgeStyle</a></td>
-              <td class="jd-descrcol" width="100%">Styles for edges.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeShape.html">NodeShape</a></td>
-              <td class="jd-descrcol" width="100%">Enum for the shapes that are most interesting for Guice graphing.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/grapher/graphviz/NodeStyle.html">NodeStyle</a></td>
-              <td class="jd-descrcol" width="100%">Styles for nodes.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/package-descr.html b/latest-javadoc/com/google/inject/grapher/package-descr.html
deleted file mode 100755
index dedc865..0000000
--- a/latest-javadoc/com/google/inject/grapher/package-descr.html
+++ /dev/null
@@ -1,316 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.grapher Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.grapher</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<div class="jd-descr">
-<p></p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/grapher/package-summary.html b/latest-javadoc/com/google/inject/grapher/package-summary.html
deleted file mode 100755
index f30060d..0000000
--- a/latest-javadoc/com/google/inject/grapher/package-summary.html
+++ /dev/null
@@ -1,437 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.grapher
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></li>
-      </ul>
-    </li>
-              
-              
-    <li><h2>Enums</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.grapher</h1>
-  <div class="jd-nav">
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;</td>
-              <td class="jd-descrcol" width="100%">Interface for an edge that connects an interface to the type or instance
- that is bound to implement it.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;&gt;</td>
-              <td class="jd-descrcol" width="100%">Factory interface for <code><a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a></code>s.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;</td>
-              <td class="jd-descrcol" width="100%">Interface for an edge from a class or <code><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></code> to the
- interface node that will satisfy the dependency.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</td>
-              <td class="jd-descrcol" width="100%">Factory interface for <code><a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a></code>s.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;</td>
-              <td class="jd-descrcol" width="100%">Node for classes and instances that have Dependencys and are
- bound to <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>s.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;&gt;</td>
-              <td class="jd-descrcol" width="100%">Factory interface for <code><a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a></code>s.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;</td>
-              <td class="jd-descrcol" width="100%">Node for an interface class that has been bound to an implementation class
- or instance.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>&lt;K,&nbsp;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;&gt;</td>
-              <td class="jd-descrcol" width="100%">Factory interface for <code><a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a></code>s.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></td>
-              <td class="jd-descrcol" width="100%">Interface for a service that provides nice Strings that we can
- display in the graph for the types that come up in Bindings.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>&lt;K&gt;</td>
-              <td class="jd-descrcol" width="100%">Factory for aliasing one node ID to another.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>&lt;K&gt;</td>
-              <td class="jd-descrcol" width="100%">Factory for abstract identifiers for elements on the graph.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/Renderer.html">Renderer</a></td>
-              <td class="jd-descrcol" width="100%">Interface for the service that renders the graph.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/GrapherModule.html">GrapherModule</a></td>
-              <td class="jd-descrcol" width="100%">Module for the common bindings for <code><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</td>
-              <td class="jd-descrcol" width="100%"><code><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> that adds nodes and edges to the graph based on
- the visited <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a></td>
-              <td class="jd-descrcol" width="100%">Root class for graphing an <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a></td>
-              <td class="jd-descrcol" width="100%">Reasonable implementation for <code><a href="../../../../com/google/inject/grapher/NameFactory.html">NameFactory</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a></td>
-              <td class="jd-descrcol" width="100%">IdFactory implementation that for String node IDs.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></td>
-              <td class="jd-descrcol" width="100%"><code><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> that returns a Collection of the
- <code><a href="../../../../com/google/inject/Key.html">Key</a></code>s of each Binding's dependencies.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Enums</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/BindingEdge.Type.html">BindingEdge.Type</a></td>
-              <td class="jd-descrcol" width="100%">Classification for what kind of binding this edge represents.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/jndi/JndiIntegration.html b/latest-javadoc/com/google/inject/jndi/JndiIntegration.html
deleted file mode 100755
index 09c2d2f..0000000
--- a/latest-javadoc/com/google/inject/jndi/JndiIntegration.html
+++ /dev/null
@@ -1,754 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  JndiIntegration
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/jndi/JndiIntegration.html">JndiIntegration</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>JndiIntegration</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.jndi.JndiIntegration</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Integrates Guice with JNDI. Requires a binding to 
- javax.naming.Context.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/jndi/JndiIntegration.html#fromJndi(java.lang.Class<T>, java.lang.String)">fromJndi</a></span>(Class&lt;T&gt; type, String name)</nobr>
-        
-        <div class="jd-descrdiv">Creates a provider which looks up objects in JNDI using the given name.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="fromJndi(java.lang.Class<T>, java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">fromJndi</span>
-      <span class="normal">(Class&lt;T&gt; type, String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a provider which looks up objects in JNDI using the given name.
- Example usage:
-
- <pre>
- bind(DataSource.class).toProvider(fromJndi(DataSource.class, "java:..."));
- </pre>
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/jndi/package-descr.html b/latest-javadoc/com/google/inject/jndi/package-descr.html
deleted file mode 100755
index 7b9a192..0000000
--- a/latest-javadoc/com/google/inject/jndi/package-descr.html
+++ /dev/null
@@ -1,291 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.jndi Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/jndi/JndiIntegration.html">JndiIntegration</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.jndi</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<div class="jd-descr">
-<p>JNDI integration; this extension requires <code>guice-jndi-3.0.jar</code>.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/jndi/package-summary.html b/latest-javadoc/com/google/inject/jndi/package-summary.html
deleted file mode 100755
index 9282064..0000000
--- a/latest-javadoc/com/google/inject/jndi/package-summary.html
+++ /dev/null
@@ -1,327 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.jndi
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/jndi/JndiIntegration.html">JndiIntegration</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.jndi</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-
-
-  <div class="jd-descr">
-  <p>JNDI integration; this extension requires <code>guice-jndi-3.0.jar</code>.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/jndi/JndiIntegration.html">JndiIntegration</a></td>
-              <td class="jd-descrcol" width="100%">Integrates Guice with JNDI.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/matcher/AbstractMatcher.html b/latest-javadoc/com/google/inject/matcher/AbstractMatcher.html
deleted file mode 100755
index 57fb022..0000000
--- a/latest-javadoc/com/google/inject/matcher/AbstractMatcher.html
+++ /dev/null
@@ -1,972 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  AbstractMatcher
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matchers.html">Matchers</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    class
-<h1>AbstractMatcher</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.matcher.AbstractMatcher&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Implements <code>and()</code> and <code>or()</code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html#AbstractMatcher()">AbstractMatcher</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html#and(com.google.inject.matcher.Matcher<? super T>)">and</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new matcher which returns <code>true</code> if both this and the
- given matcher return <code>true</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html#or(com.google.inject.matcher.Matcher<? super T>)">or</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new matcher which returns <code>true</code> if either this or the
- given matcher return <code>true</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.matcher.Matcher" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.matcher.Matcher-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/matcher/Matcher.html">com.google.inject.matcher.Matcher</a>
-
-<div id="inherited-methods-com.google.inject.matcher.Matcher">
-  <div id="inherited-methods-com.google.inject.matcher.Matcher-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.matcher.Matcher-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matcher.html#and(com.google.inject.matcher.Matcher<? super T>)">and</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new matcher which returns <code>true</code> if both this and the
- given matcher return <code>true</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matcher.html#matches(T)">matches</a></span>(T t)</nobr>
-        
-        <div class="jd-descrdiv">Returns <code>true</code> if this matches <code>t</code>, <code>false</code> otherwise.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matcher.html#or(com.google.inject.matcher.Matcher<? super T>)">or</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new matcher which returns <code>true</code> if either this or the
- given matcher return <code>true</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="AbstractMatcher()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">AbstractMatcher</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="and(com.google.inject.matcher.Matcher<? super T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;
-      </span>
-      <span class="sympad">and</span>
-      <span class="normal">(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new matcher which returns <code>true</code> if both this and the
- given matcher return <code>true</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="or(com.google.inject.matcher.Matcher<? super T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;
-      </span>
-      <span class="sympad">or</span>
-      <span class="normal">(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new matcher which returns <code>true</code> if either this or the
- given matcher return <code>true</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/matcher/Matcher.html b/latest-javadoc/com/google/inject/matcher/Matcher.html
deleted file mode 100755
index 717ec3a..0000000
--- a/latest-javadoc/com/google/inject/matcher/Matcher.html
+++ /dev/null
@@ -1,660 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Matcher
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matchers.html">Matchers</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>Matcher</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.matcher.Matcher&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>&lt;T&gt;
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">Implements <code>and()</code> and <code>or()</code>.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Returns <code>true</code> or <code>false</code> for a given input.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matcher.html#and(com.google.inject.matcher.Matcher<? super T>)">and</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new matcher which returns <code>true</code> if both this and the
- given matcher return <code>true</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matcher.html#matches(T)">matches</a></span>(T t)</nobr>
-        
-        <div class="jd-descrdiv">Returns <code>true</code> if this matches <code>t</code>, <code>false</code> otherwise.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matcher.html#or(com.google.inject.matcher.Matcher<? super T>)">or</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new matcher which returns <code>true</code> if either this or the
- given matcher return <code>true</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="and(com.google.inject.matcher.Matcher<? super T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;
-      </span>
-      <span class="sympad">and</span>
-      <span class="normal">(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new matcher which returns <code>true</code> if both this and the
- given matcher return <code>true</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="matches(T)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        boolean
-      </span>
-      <span class="sympad">matches</span>
-      <span class="normal">(T t)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns <code>true</code> if this matches <code>t</code>, <code>false</code> otherwise.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="or(com.google.inject.matcher.Matcher<? super T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;
-      </span>
-      <span class="sympad">or</span>
-      <span class="normal">(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; other)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new matcher which returns <code>true</code> if either this or the
- given matcher return <code>true</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/matcher/Matchers.html b/latest-javadoc/com/google/inject/matcher/Matchers.html
deleted file mode 100755
index e6dcd36..0000000
--- a/latest-javadoc/com/google/inject/matcher/Matchers.html
+++ /dev/null
@@ -1,1229 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Matchers
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matchers.html">Matchers</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>Matchers</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.matcher.Matchers</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Matcher implementations. Supports matching classes and methods.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;AnnotatedElement&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)">annotatedWith</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a matcher which matches elements (methods, classes, etc.)
- with a given annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;AnnotatedElement&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#annotatedWith(java.lang.annotation.Annotation)">annotatedWith</a></span>(Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">Returns a matcher which matches elements (methods, classes, etc.)
- with a given annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Object&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#any()">any</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns a matcher which matches any input.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Object&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#identicalTo(java.lang.Object)">identicalTo</a></span>(Object value)</nobr>
-        
-        <div class="jd-descrdiv">Returns a matcher which matches only the given object.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Class&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#inPackage(java.lang.Package)">inPackage</a></span>(Package targetPackage)</nobr>
-        
-        <div class="jd-descrdiv">Returns a matcher which matches classes in the given package.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Class&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#inSubpackage(java.lang.String)">inSubpackage</a></span>(String targetPackageName)</nobr>
-        
-        <div class="jd-descrdiv">Returns a matcher which matches classes in the given package and its subpackages.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#not(com.google.inject.matcher.Matcher<? super T>)">not</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; p)</nobr>
-        
-        <div class="jd-descrdiv">Inverts the given matcher.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Object&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#only(java.lang.Object)">only</a></span>(Object value)</nobr>
-        
-        <div class="jd-descrdiv">Returns a matcher which matches objects equal to the given object.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Method&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#returns(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>)">returns</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; returnType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a matcher which matches methods with matching return types.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Class&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/matcher/Matchers.html#subclassesOf(java.lang.Class<?>)">subclassesOf</a></span>(Class&lt;?&gt; superclass)</nobr>
-        
-        <div class="jd-descrdiv">Returns a matcher which matches subclasses of the given type (as well as
- the given type).</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;AnnotatedElement&gt;
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a matcher which matches elements (methods, classes, etc.)
- with a given annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="annotatedWith(java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;AnnotatedElement&gt;
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a matcher which matches elements (methods, classes, etc.)
- with a given annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="any()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Object&gt;
-      </span>
-      <span class="sympad">any</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a matcher which matches any input.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="identicalTo(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Object&gt;
-      </span>
-      <span class="sympad">identicalTo</span>
-      <span class="normal">(Object value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a matcher which matches only the given object.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="inPackage(java.lang.Package)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Class&gt;
-      </span>
-      <span class="sympad">inPackage</span>
-      <span class="normal">(Package targetPackage)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a matcher which matches classes in the given package. Packages are specific to their
- classloader, so classes with the same package name may not have the same package at runtime.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="inSubpackage(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Class&gt;
-      </span>
-      <span class="sympad">inSubpackage</span>
-      <span class="normal">(String targetPackageName)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a matcher which matches classes in the given package and its subpackages. Unlike
- <code><a href="../../../../com/google/inject/matcher/Matchers.html#inPackage(java.lang.Package)">inPackage()</a></code>, this matches classes from any classloader.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="not(com.google.inject.matcher.Matcher<? super T>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;
-      </span>
-      <span class="sympad">not</span>
-      <span class="normal">(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;T&gt; p)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Inverts the given matcher.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="only(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Object&gt;
-      </span>
-      <span class="sympad">only</span>
-      <span class="normal">(Object value)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a matcher which matches objects equal to the given object.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="returns(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Method&gt;
-      </span>
-      <span class="sympad">returns</span>
-      <span class="normal">(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; returnType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a matcher which matches methods with matching return types.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="subclassesOf(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;Class&gt;
-      </span>
-      <span class="sympad">subclassesOf</span>
-      <span class="normal">(Class&lt;?&gt; superclass)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a matcher which matches subclasses of the given type (as well as
- the given type).
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/matcher/package-descr.html b/latest-javadoc/com/google/inject/matcher/package-descr.html
deleted file mode 100755
index ce35919..0000000
--- a/latest-javadoc/com/google/inject/matcher/package-descr.html
+++ /dev/null
@@ -1,298 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.matcher Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matchers.html">Matchers</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.matcher</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<div class="jd-descr">
-<p>Used for matching things. Primarily used to pick out methods to which to
- apply interceptors.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/matcher/package-summary.html b/latest-javadoc/com/google/inject/matcher/package-summary.html
deleted file mode 100755
index 5f3e730..0000000
--- a/latest-javadoc/com/google/inject/matcher/package-summary.html
+++ /dev/null
@@ -1,348 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.matcher
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/matcher/Matchers.html">Matchers</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.matcher</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-
-
-  <div class="jd-descr">
-  <p>Used for matching things.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">Returns <code>true</code> or <code>false</code> for a given input.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">Implements <code>and()</code> and <code>or()</code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/matcher/Matchers.html">Matchers</a></td>
-              <td class="jd-descrcol" width="100%">Matcher implementations.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/multibindings/MapBinder.html b/latest-javadoc/com/google/inject/multibindings/MapBinder.html
deleted file mode 100755
index c2d4395..0000000
--- a/latest-javadoc/com/google/inject/multibindings/MapBinder.html
+++ /dev/null
@@ -1,1213 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  MapBinder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    class
-<h1>MapBinder</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.multibindings.MapBinder&lt;K,&nbsp;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>An API to bind multiple map entries separately, only to later inject them as
- a complete map. MapBinder is intended for use in your application's module:
- <pre><code>
- public class SnacksModule extends AbstractModule {
-   protected void configure() {
-     MapBinder&lt;String, Snack&gt; mapbinder
-         = MapBinder.newMapBinder(binder(), String.class, Snack.class);
-     mapbinder.addBinding("twix").toInstance(new Twix());
-     mapbinder.addBinding("snickers").toProvider(SnickersProvider.class);
-     mapbinder.addBinding("skittles").to(Skittles.class);
-   }
- }</code></pre>
-
- <p>With this binding, a Map<code>&lt;String, Snack&gt;</code> can now be
- injected:
- <pre><code>
- class SnackMachine {
-   @Inject
-   public SnackMachine(Map&lt;String, Snack&gt; snacks) { ... }
- }</code></pre>
-
- <p>In addition to binding <code>Map&lt;K, V&gt;</code>, a mapbinder will also bind
- <code>Map&lt;K, Provider&lt;V&gt;&gt;</code> for lazy value provision:
- <pre><code>
- class SnackMachine {
-   @Inject
-   public SnackMachine(Map&lt;String, Provider&lt;Snack&gt;&gt; snackProviders) { ... }
- }</code></pre>
-
- <p>Contributing mapbindings from different modules is supported. For example,
- it is okay to have both <code>CandyModule</code> and <code>ChipsModule</code> both
- create their own <code>MapBinder&lt;String, Snack&gt;</code>, and to each contribute
- bindings to the snacks map. When that map is injected, it will contain
- entries from both modules.
-
- <p>The map's iteration order is consistent with the binding order. This is
- convenient when multiple elements are contributed by the same module because
- that module can order its bindings appropriately. Avoid relying on the
- iteration order of elements contributed by different modules, since there is
- no equivalent mechanism to order modules.
- 
- <p>The map is unmodifiable.  Elements can only be added to the map by
- configuring the MapBinder.  Elements can never be removed from the map.
-
- <p>Values are resolved at map injection time. If a value is bound to a
- provider, that provider's get method will be called each time the map is
- injected (unless the binding is also scoped, or a map of providers is injected).
-
- <p>Annotations are used to create different maps of the same key/value
- type. Each distinct annotation gets its own independent map.
-
- <p><strong>Keys must be distinct.</strong> If the same key is bound more than
- once, map injection will fail. However, use <code><a href="../../../../com/google/inject/multibindings/MapBinder.html#permitDuplicates()">permitDuplicates()</a></code> in
- order to allow duplicate keys; extra bindings to <code>Map&lt;K, Set&lt;V&gt;&gt;</code> and
- <code>Map&lt;K, Set&lt;Provider&lt;V&gt;&gt;</code> will be added.
-
- <p><strong>Keys must be non-null.</strong> <code>addBinding(null)</code> will
- throw an unchecked exception.
-
- <p><strong>Values must be non-null to use map injection.</strong> If any
- value is null, map injection will fail (although injecting a map of providers
- will not).</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;V&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinder.html#addBinding(K)">addBinding</a></span>(K key)</nobr>
-        
-        <div class="jd-descrdiv">Returns a binding builder used to add a new entry in the map.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;K,&nbsp;V&gt;
-            <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinder.html#newMapBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<K>, com.google.inject.TypeLiteral<V>)">newMapBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;K&gt; keyType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;V&gt; valueType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with no binding annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;K,&nbsp;V&gt;
-            <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinder.html#newMapBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<K>, com.google.inject.TypeLiteral<V>, java.lang.Class<? extends java.lang.annotation.Annotation>)">newMapBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;K&gt; keyType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;V&gt; valueType, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with <code>annotationType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;K,&nbsp;V&gt;
-            <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinder.html#newMapBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<K>, com.google.inject.TypeLiteral<V>, java.lang.annotation.Annotation)">newMapBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;K&gt; keyType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;V&gt; valueType, Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with <code>annotation</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;K,&nbsp;V&gt;
-            <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinder.html#newMapBinder(com.google.inject.Binder, java.lang.Class<K>, java.lang.Class<V>)">newMapBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;K&gt; keyType, Class&lt;V&gt; valueType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with no binding annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;K,&nbsp;V&gt;
-            <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinder.html#newMapBinder(com.google.inject.Binder, java.lang.Class<K>, java.lang.Class<V>, java.lang.Class<? extends java.lang.annotation.Annotation>)">newMapBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;K&gt; keyType, Class&lt;V&gt; valueType, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with <code>annotationType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;K,&nbsp;V&gt;
-            <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinder.html#newMapBinder(com.google.inject.Binder, java.lang.Class<K>, java.lang.Class<V>, java.lang.annotation.Annotation)">newMapBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;K&gt; keyType, Class&lt;V&gt; valueType, Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with <code>annotation</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinder.html#permitDuplicates()">permitDuplicates</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures the <code>MapBinder</code> to handle duplicate entries.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="addBinding(K)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;V&gt;
-      </span>
-      <span class="sympad">addBinding</span>
-      <span class="normal">(K key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>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.
-
- <p>It is an error to call this method without also calling one of the
- <code>to</code> methods on the returned binding builder.
-
- <p>Scoping elements independently is supported. Use the <code>in</code> method
- to specify a binding scope.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newMapBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<K>, com.google.inject.TypeLiteral<V>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;
-      </span>
-      <span class="sympad">newMapBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;K&gt; keyType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;V&gt; valueType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with no binding annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newMapBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<K>, com.google.inject.TypeLiteral<V>, java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;
-      </span>
-      <span class="sympad">newMapBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;K&gt; keyType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;V&gt; valueType, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with <code>annotationType</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newMapBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<K>, com.google.inject.TypeLiteral<V>, java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;
-      </span>
-      <span class="sympad">newMapBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;K&gt; keyType, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;V&gt; valueType, Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with <code>annotation</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newMapBinder(com.google.inject.Binder, java.lang.Class<K>, java.lang.Class<V>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;
-      </span>
-      <span class="sympad">newMapBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;K&gt; keyType, Class&lt;V&gt; valueType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with no binding annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newMapBinder(com.google.inject.Binder, java.lang.Class<K>, java.lang.Class<V>, java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;
-      </span>
-      <span class="sympad">newMapBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;K&gt; keyType, Class&lt;V&gt; valueType, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with <code>annotationType</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newMapBinder(com.google.inject.Binder, java.lang.Class<K>, java.lang.Class<V>, java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;
-      </span>
-      <span class="sympad">newMapBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;K&gt; keyType, Class&lt;V&gt; valueType, Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new mapbinder that collects entries of <code>keyType</code>/<code>valueType</code> in a
- Map that is itself bound with <code>annotation</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="permitDuplicates()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;
-      </span>
-      <span class="sympad">permitDuplicates</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Configures the <code>MapBinder</code> to handle duplicate entries.
- <p>When multiple equal keys are bound, the value that gets included in the map is
- arbitrary.
- <p>In addition to the <code>Map&lt;K, V&gt;</code> and <code>Map&lt;K, Provider&lt;V&gt;&gt;</code>
- maps that are normally bound, a <code>Map&lt;K, Set&lt;V&gt;&gt;</code> and
- <code>Map&lt;K, Set&lt;Provider&lt;V&gt;&gt;&gt;</code> are <em>also</em> bound, which contain
- all values bound to each key.
- <p>
- When multiple modules contribute elements to the map, this configuration
- option impacts all of them.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>this map binder</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/multibindings/MapBinderBinding.html b/latest-javadoc/com/google/inject/multibindings/MapBinderBinding.html
deleted file mode 100755
index a309538..0000000
--- a/latest-javadoc/com/google/inject/multibindings/MapBinderBinding.html
+++ /dev/null
@@ -1,797 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  MapBinderBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>MapBinderBinding</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.multibindings.MapBinderBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding for a MapBinder.
- <p>
- Although MapBinders may be injected through a variety of generic types (Map&lt;K, V>, Map
- &lt;K, Provider&lt;V>>, Map&lt;K, Set&lt;V>>, Map<K, Set&lt;
- Provider&lt;V>>, and even Set&lt;Map.Entry&lt;K, Provider&lt;V>>), a
- MapBinderBinding exists only on the Binding associated with the Map&lt;K, V> key. Other
- bindings can be validated to be derived from this MapBinderBinding using
- <code><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#containsElement(com.google.inject.spi.Element)">containsElement(Element)</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#containsElement(com.google.inject.spi.Element)">containsElement</a></span>(<a href="../../../../com/google/inject/spi/Element.html">Element</a> element)</nobr>
-        
-        <div class="jd-descrdiv">Returns true if this MapBinder contains the given Element in order to build the map or uses the
- given Element in order to support building and injecting the map.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            List&lt;Entry&lt;?,&nbsp;<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt;&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#getEntries()">getEntries</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns all entries in the Map.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#getKeyTypeLiteral()">getKeyTypeLiteral</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the TypeLiteral describing the keys of the map.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#getMapKey()">getMapKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the <code><a href="../../../../com/google/inject/Key.html">Key</a></code> for the map.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#getValueTypeLiteral()">getValueTypeLiteral</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the TypeLiteral describing the values of the map.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#permitsDuplicates()">permitsDuplicates</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns true if the MapBinder permits duplicates.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="containsElement(com.google.inject.spi.Element)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        boolean
-      </span>
-      <span class="sympad">containsElement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/Element.html">Element</a> element)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if this MapBinder contains the given Element in order to build the map or uses the
- given Element in order to support building and injecting the map. This will work for
- MapBinderBindings retrieved from an injector and <code><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Module...)">getElements(Module...)</a></code>. Usually this is
- only necessary if you are working with elements retrieved from modules (without an Injector),
- otherwise <code><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#getEntries()">getEntries()</a></code> and <code><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#permitsDuplicates()">permitsDuplicates()</a></code> are better options.
- <p>
- If you need to introspect the details of the map, such as the keys, values or if it permits
- duplicates, it is necessary to pass the elements through an Injector and use
- <code><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#getEntries()">getEntries()</a></code> and <code><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html#permitsDuplicates()">permitsDuplicates()</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getEntries()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        List&lt;Entry&lt;?,&nbsp;<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt;&gt;&gt;
-      </span>
-      <span class="sympad">getEntries</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns all entries in the Map. The returned list of Map.Entries contains the key and a binding
- to the value. Duplicate keys or values will exist as separate Map.Entries in the returned list.
- This is only supported on bindings returned from an injector. This will throw
- UnsupportedOperationException if it is called on an element retrieved from
- <code><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Module...)">getElements(Module...)</a></code>.
- <p>
- The elements will always match the type Map's generic type. For example, if getMapKey returns a
- key of <code>Map&lt;String, Snack></code>, then this will always return a list of type
- <code>List&lt;Map.Entry&lt;String, Binding&lt;Snack>>></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getKeyTypeLiteral()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;
-      </span>
-      <span class="sympad">getKeyTypeLiteral</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the TypeLiteral describing the keys of the map.
- <p>
- The TypeLiteral will always match the type Map's generic type. For example, if getMapKey
- returns a key of <code>Map&lt;String, Snack></code>, then this will always return a
- <code>TypeLiteral&lt;String></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMapKey()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMapKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the <code><a href="../../../../com/google/inject/Key.html">Key</a></code> for the map. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getValueTypeLiteral()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;
-      </span>
-      <span class="sympad">getValueTypeLiteral</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the TypeLiteral describing the values of the map.
- <p>
- The TypeLiteral will always match the type Map's generic type. For example, if getMapKey
- returns a key of <code>Map&lt;String, Snack></code>, then this will always return a
- <code>TypeLiteral&lt;Snack></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="permitsDuplicates()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        boolean
-      </span>
-      <span class="sympad">permitsDuplicates</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if the MapBinder permits duplicates. This is only supported on bindings returned
- from an injector. This will throw UnsupportedOperationException if it is called on a
- MapBinderBinding retrieved from <code><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Module...)">getElements(Module...)</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/multibindings/Multibinder.html b/latest-javadoc/com/google/inject/multibindings/Multibinder.html
deleted file mode 100755
index f10716c..0000000
--- a/latest-javadoc/com/google/inject/multibindings/Multibinder.html
+++ /dev/null
@@ -1,1193 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Multibinder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    class
-<h1>Multibinder</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.multibindings.Multibinder&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>An API to bind multiple values separately, only to later inject them as a
- complete collection. Multibinder is intended for use in your application's
- module:
- <pre><code>
- public class SnacksModule extends AbstractModule {
-   protected void configure() {
-     Multibinder&lt;Snack&gt; multibinder
-         = Multibinder.newSetBinder(binder(), Snack.class);
-     multibinder.addBinding().toInstance(new Twix());
-     multibinder.addBinding().toProvider(SnickersProvider.class);
-     multibinder.addBinding().to(Skittles.class);
-   }
- }</code></pre>
-
- <p>With this binding, a Set<code>&lt;Snack&gt;</code> can now be injected:
- <pre><code>
- class SnackMachine {
-   @Inject
-   public SnackMachine(Set&lt;Snack&gt; snacks) { ... }
- }</code></pre>
-
- <p>Contributing multibindings from different modules is supported. For
- example, it is okay to have both <code>CandyModule</code> and <code>ChipsModule</code>
- to both create their own <code>Multibinder&lt;Snack&gt;</code>, and to each contribute
- bindings to the set of snacks. When that set is injected, it will contain
- elements from both modules.
- 
- <p>The set's iteration order is consistent with the binding order. This is
- convenient when multiple elements are contributed by the same module because
- that module can order its bindings appropriately. Avoid relying on the
- iteration order of elements contributed by different modules, since there is
- no equivalent mechanism to order modules.
- 
- <p>The set is unmodifiable.  Elements can only be added to the set by
- configuring the multibinder.  Elements can never be removed from the set.
-
- <p>Elements are resolved at set injection time. If an element is bound to a
- provider, that provider's get method will be called each time the set is
- injected (unless the binding is also scoped).
-
- <p>Annotations are be used to create different sets of the same element
- type. Each distinct annotation gets its own independent collection of
- elements.
-
- <p><strong>Elements must be distinct.</strong> If multiple bound elements
- have the same value, set injection will fail.
-
- <p><strong>Elements must be non-null.</strong> If any set element is null,
- set injection will fail.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/Multibinder.html#addBinding()">addBinding</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns a binding builder used to add a new element in the set.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/Multibinder.html#newSetBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<T>)">newSetBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with no binding annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/Multibinder.html#newSetBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)">newSetBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with <code>annotationType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/Multibinder.html#newSetBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<T>, java.lang.annotation.Annotation)">newSetBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type, Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with <code>annotation</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/Multibinder.html#newSetBinder(com.google.inject.Binder, java.lang.Class<T>)">newSetBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with no binding annotation.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/Multibinder.html#newSetBinder(com.google.inject.Binder, java.lang.Class<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)">newSetBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;T&gt; type, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with <code>annotationType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/Multibinder.html#newSetBinder(com.google.inject.Binder, java.lang.Class<T>, java.lang.annotation.Annotation)">newSetBinder</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;T&gt; type, Annotation annotation)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with <code>annotation</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/Multibinder.html#permitDuplicates()">permitDuplicates</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures the bound set to silently discard duplicate elements.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="addBinding()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">addBinding</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>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.
-
- <p>It is an error to call this method without also calling one of the
- <code>to</code> methods on the returned binding builder.
-
- <p>Scoping elements independently is supported. Use the <code>in</code> method
- to specify a binding scope.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newSetBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">newSetBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with no binding annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newSetBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">newSetBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with <code>annotationType</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newSetBinder(com.google.inject.Binder, com.google.inject.TypeLiteral<T>, java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">newSetBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type, Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with <code>annotation</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newSetBinder(com.google.inject.Binder, java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">newSetBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with no binding annotation.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newSetBinder(com.google.inject.Binder, java.lang.Class<T>, java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">newSetBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;T&gt; type, Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with <code>annotationType</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="newSetBinder(com.google.inject.Binder, java.lang.Class<T>, java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">newSetBinder</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Class&lt;T&gt; type, Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new multibinder that collects instances of <code>type</code> in a Set that is
- itself bound with <code>annotation</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="permitDuplicates()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;
-      </span>
-      <span class="sympad">permitDuplicates</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>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.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>this multibinder</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/multibindings/MultibinderBinding.html b/latest-javadoc/com/google/inject/multibindings/MultibinderBinding.html
deleted file mode 100755
index 766a352..0000000
--- a/latest-javadoc/com/google/inject/multibindings/MultibinderBinding.html
+++ /dev/null
@@ -1,731 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  MultibinderBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>MultibinderBinding</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.multibindings.MultibinderBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding for a Multibinder.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html#containsElement(com.google.inject.spi.Element)">containsElement</a></span>(<a href="../../../../com/google/inject/spi/Element.html">Element</a> element)</nobr>
-        
-        <div class="jd-descrdiv">Returns true if this Multibinder uses the given Element.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html#getElementTypeLiteral()">getElementTypeLiteral</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the TypeLiteral that describes the type of elements in the set.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            List&lt;<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html#getElements()">getElements</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns all bindings that make up the set.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html#getSetKey()">getSetKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for the set.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html#permitsDuplicates()">permitsDuplicates</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns true if the multibinder permits duplicates.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="containsElement(com.google.inject.spi.Element)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        boolean
-      </span>
-      <span class="sympad">containsElement</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/Element.html">Element</a> element)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if this Multibinder uses the given Element. This will be true for bindings that
- derive the elements of the set and other bindings that Multibinder uses internally. This will
- work for MultibinderBindings retrieved from an injector and <code><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Module...)">getElements(Module...)</a></code>.
- Usually this is only necessary if you are working with elements retrieved from modules (without
- an Injector), otherwise <code><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html#getElements()">getElements()</a></code> and <code><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html#permitsDuplicates()">permitsDuplicates()</a></code> are better options.
- <p>
- If you need to introspect the details of the set, such as the values or if it permits
- duplicates, it is necessary to pass the elements through an Injector and use
- <code><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html#getElements()">getElements()</a></code> and <code><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html#permitsDuplicates()">permitsDuplicates()</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getElementTypeLiteral()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;
-      </span>
-      <span class="sympad">getElementTypeLiteral</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the TypeLiteral that describes the type of elements in the set.
- <p>
- The elements will always match the type Set's generic type. For example, if getSetKey returns a
- key of <code>Set&lt;String></code>, then this will always return a
- <code>TypeLiteral&lt;String></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getElements()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        List&lt;<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getElements</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns all bindings that make up the set. This is only supported on bindings returned from an
- injector. This will throw UnsupportedOperationException if it is called on an element
- retrieved from <code><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Module...)">getElements(Module...)</a></code>.
- <p>
- The elements will always match the type Set's generic type. For example, if getSetKey returns a
- key of <code>Set&lt;String></code>, then this will always return a list of type
- <code>List&lt;Binding&lt;String>></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSetKey()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getSetKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the key for the set. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="permitsDuplicates()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        boolean
-      </span>
-      <span class="sympad">permitsDuplicates</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if the multibinder permits duplicates. This is only supported on bindings returned
- from an injector. This will throw UnsupportedOperationException if it is called on a
- MultibinderBinding retrieved from <code><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Module...)">getElements(Module...)</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/multibindings/MultibindingsTargetVisitor.html b/latest-javadoc/com/google/inject/multibindings/MultibindingsTargetVisitor.html
deleted file mode 100755
index 792c703..0000000
--- a/latest-javadoc/com/google/inject/multibindings/MultibindingsTargetVisitor.html
+++ /dev/null
@@ -1,789 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  MultibindingsTargetVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>MultibindingsTargetVisitor</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.multibindings.MultibindingsTargetVisitor&lt;T,&nbsp;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A visitor for the multibinder extension.
- <p>
- If your <code><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> implements this interface, bindings created by using
- <code><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a></code> or <code><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a></code> will be visited through this interface.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html#visit(com.google.inject.multibindings.MapBinderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; mapbinding)</nobr>
-        
-        <div class="jd-descrdiv">Visits a binding created through <code><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html#visit(com.google.inject.multibindings.MultibinderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; multibinding)</nobr>
-        
-        <div class="jd-descrdiv">Visits a binding created through <code><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.BindingTargetVisitor" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">com.google.inject.spi.BindingTargetVisitor</a>
-
-<div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor">
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConstructorBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a constructor binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding created from converting a bound instance to a new type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ExposedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a key exposed from an enclosed private environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.InstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a linked key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.UntargettedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an untargetted binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visit(com.google.inject.multibindings.MapBinderBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; mapbinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visits a binding created through <code><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.multibindings.MultibinderBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; multibinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visits a binding created through <code><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/multibindings/package-descr.html b/latest-javadoc/com/google/inject/multibindings/package-descr.html
deleted file mode 100755
index 1774bf7..0000000
--- a/latest-javadoc/com/google/inject/multibindings/package-descr.html
+++ /dev/null
@@ -1,299 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.multibindings Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.multibindings</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<div class="jd-descr">
-<p>Extension for binding multiple instances in a collection; this extension requires <code>guice-multibindings-3.0.jar</code>.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/multibindings/package-summary.html b/latest-javadoc/com/google/inject/multibindings/package-summary.html
deleted file mode 100755
index f354626..0000000
--- a/latest-javadoc/com/google/inject/multibindings/package-summary.html
+++ /dev/null
@@ -1,360 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.multibindings
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.multibindings</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-
-
-  <div class="jd-descr">
-  <p>Extension for binding multiple instances in a collection; this extension requires <code>guice-multibindings-3.0.jar</code>.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/multibindings/MapBinderBinding.html">MapBinderBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding for a MapBinder.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/multibindings/MultibinderBinding.html">MultibinderBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding for a Multibinder.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">A visitor for the multibinder extension.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/multibindings/MapBinder.html">MapBinder</a>&lt;K,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">An API to bind multiple map entries separately, only to later inject them as
- a complete map.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/multibindings/Multibinder.html">Multibinder</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">An API to bind multiple values separately, only to later inject them as a
- complete collection.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/name/Named.html b/latest-javadoc/com/google/inject/name/Named.html
deleted file mode 100755
index 6162cb9..0000000
--- a/latest-javadoc/com/google/inject/name/Named.html
+++ /dev/null
@@ -1,563 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Named
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/name/Names.html">Names</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/name/Named.html">Named</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>Named</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.name.Named</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Annotates named things.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/name/Names.html b/latest-javadoc/com/google/inject/name/Names.html
deleted file mode 100755
index e9ac987..0000000
--- a/latest-javadoc/com/google/inject/name/Names.html
+++ /dev/null
@@ -1,861 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Names
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/name/Names.html">Names</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/name/Named.html">Named</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>Names</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.name.Names</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Utility methods for use with <code>@</code><code><a href="../../../../com/google/inject/name/Named.html">Named</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/name/Names.html#bindProperties(com.google.inject.Binder, java.util.Map<java.lang.String, java.lang.String>)">bindProperties</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Map&lt;String,&nbsp;String&gt; properties)</nobr>
-        
-        <div class="jd-descrdiv">Creates a constant binding to <code>@Named(key)</code> for each entry in
- <code>properties</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/name/Names.html#bindProperties(com.google.inject.Binder, java.util.Properties)">bindProperties</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Properties properties)</nobr>
-        
-        <div class="jd-descrdiv">Creates a constant binding to <code>@Named(key)</code> for each property.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/name/Named.html">Named</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/name/Names.html#named(java.lang.String)">named</a></span>(String name)</nobr>
-        
-        <div class="jd-descrdiv">Creates a <code><a href="../../../../com/google/inject/name/Named.html">Named</a></code> annotation with <code>name</code> as the value.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="bindProperties(com.google.inject.Binder, java.util.Map<java.lang.String, java.lang.String>)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">bindProperties</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Map&lt;String,&nbsp;String&gt; properties)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a constant binding to <code>@Named(key)</code> for each entry in
- <code>properties</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="bindProperties(com.google.inject.Binder, java.util.Properties)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">bindProperties</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, Properties properties)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a constant binding to <code>@Named(key)</code> for each property. This
- method binds all properties including those inherited from 
- <code><a href="null#defaults">defaults</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="named(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/name/Named.html">Named</a>
-      </span>
-      <span class="sympad">named</span>
-      <span class="normal">(String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a <code><a href="../../../../com/google/inject/name/Named.html">Named</a></code> annotation with <code>name</code> as the value.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/name/package-descr.html b/latest-javadoc/com/google/inject/name/package-descr.html
deleted file mode 100755
index 326067c..0000000
--- a/latest-javadoc/com/google/inject/name/package-descr.html
+++ /dev/null
@@ -1,296 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.name Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/name/Names.html">Names</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/name/Named.html">Named</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.name</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<div class="jd-descr">
-<p>Support for binding to string-based names.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/name/package-summary.html b/latest-javadoc/com/google/inject/name/package-summary.html
deleted file mode 100755
index 828c5c0..0000000
--- a/latest-javadoc/com/google/inject/name/package-summary.html
+++ /dev/null
@@ -1,332 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.name
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/name/Names.html">Names</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/name/Named.html">Named</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.name</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-
-
-  <div class="jd-descr">
-  <p>Support for binding to string-based names.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/name/Names.html">Names</a></td>
-              <td class="jd-descrcol" width="100%">Utility methods for use with <code>@</code><code><a href="../../../../com/google/inject/name/Named.html">Named</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/package-descr.html b/latest-javadoc/com/google/inject/package-descr.html
deleted file mode 100755
index 952e7c5..0000000
--- a/latest-javadoc/com/google/inject/package-descr.html
+++ /dev/null
@@ -1,360 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  com.google.inject Details
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<div class="jd-descr">
-<p><i>Google Guice</i> (pronounced "juice") is an ultra-lightweight dependency
- injection framework.  Please refer to the Guice
- <a href="http://docs.google.com/Doc?id=dd2fhx4z_5df5hw8">User's Guide</a>
- for a gentle introduction.
-
- <p>The principal public APIs in this package are:
-
- <dl>
- <dt><code><a href="../../../com/google/inject/Inject.html">Inject</a></code>
- <dd>The annotation you will use in your implementation classes to tell Guice
-     where and how it should send in ("inject") the objects you depend on
-     (your "dependencies").
-
- <dt><code><a href="../../../com/google/inject/Module.html">Module</a></code>
- <dd>The interface you will implement in order to specify "bindings" --
-     instructions for how Guice should handle injection -- for a particular
-     set of interfaces.
-
- <dt><code><a href="../../../com/google/inject/Binder.html">Binder</a></code>
- <dd>The object that Guice passes into your <code><a href="../../../com/google/inject/Module.html">Module</a></code>
-     to collect these bindings.
-
- <dt><code><a href="../../../com/google/inject/Provider.html">Provider</a></code>
- <dd>The interface you will implement when you need to customize exactly how
-     Guice creates instances for a particular binding.
-
- </dl>
-
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/package-summary.html b/latest-javadoc/com/google/inject/package-summary.html
deleted file mode 100755
index 4cf0dc7..0000000
--- a/latest-javadoc/com/google/inject/package-summary.html
+++ /dev/null
@@ -1,469 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
-<title>
-
-  com.google.inject
-
-
-| Guice
-
-</title>
-<link href="../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../", "../../../../javadoc/assets/");
-</script>
-<script src="../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../')"
-                      onkeyup="return search_changed(event, false, '../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../packages.html"  >Package Index</a> | 
-                <a href="../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binder.html">Binder</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Injector.html">Injector</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Module.html">Module</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scope.html">Scope</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Guice.html">Guice</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Scopes.html">Scopes</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/BindingAnnotation.html">BindingAnnotation</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Exposed.html">Exposed</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Inject.html">Inject</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ProvidedBy.html">ProvidedBy</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/Provides.html">Provides</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/ScopeAnnotation.html">ScopeAnnotation</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Singleton.html">Singleton</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/Stage.html">Stage</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Exceptions</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../com/google/inject/CreationException.html">CreationException</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></li>
-      </ul>
-    </li>
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../packages.html"  >Package Index</a> | 
-            <a href="../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-
-
-  <div class="jd-descr">
-  <p><i>Google Guice</i> (pronounced "juice") is an ultra-lightweight dependency
- injection framework.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Binder.html">Binder</a></td>
-              <td class="jd-descrcol" width="100%">Collects configuration information (primarily <i>bindings</i>) which will be
- used to create an <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A mapping from a key (type and optional annotation) to the strategy for getting instances of the
- type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Injector.html">Injector</a></td>
-              <td class="jd-descrcol" width="100%">Builds the graphs of objects that make up your application.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">Injects dependencies into the fields and methods on instances of type <code>T</code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Module.html">Module</a></td>
-              <td class="jd-descrcol" width="100%">A module contributes configuration information, typically interface
- bindings, which will be used to create an <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></td>
-              <td class="jd-descrcol" width="100%">Returns a binder whose configuration information is hidden from its environment by default.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">An object capable of providing instances of type <code>T</code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Scope.html">Scope</a></td>
-              <td class="jd-descrcol" width="100%">A scope is a level of visibility that instances provided by Guice may have.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/AbstractModule.html">AbstractModule</a></td>
-              <td class="jd-descrcol" width="100%">A support class for <code><a href="../../../com/google/inject/Module.html">Module</a></code>s which reduces repetition and results in
- a more readable configuration.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Guice.html">Guice</a></td>
-              <td class="jd-descrcol" width="100%">The entry point to the Guice framework.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">Binding key consisting of an injection type and an optional annotation.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/PrivateModule.html">PrivateModule</a></td>
-              <td class="jd-descrcol" width="100%">A module whose configuration information is hidden from its environment by default.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Scopes.html">Scopes</a></td>
-              <td class="jd-descrcol" width="100%">Built-in scope implementations.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">Represents a generic type <code>T</code>.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Enums</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/Stage.html">Stage</a></td>
-              <td class="jd-descrcol" width="100%">The stage we're running in.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Exceptions</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-              <td class="jd-descrcol" width="100%">Thrown when a programming error such as a misplaced annotation, illegal binding, or unsupported
- scope is found.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/CreationException.html">CreationException</a></td>
-              <td class="jd-descrcol" width="100%">Thrown when errors occur while creating a <code><a href="../../../com/google/inject/Injector.html">Injector</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></td>
-              <td class="jd-descrcol" width="100%">Thrown from <code><a href="../../../com/google/inject/Provider.html#get()">get()</a></code> when an attempt is made to access a scoped
- object while the scope in question is not currently active.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../com/google/inject/ProvisionException.html">ProvisionException</a></td>
-              <td class="jd-descrcol" width="100%">Indicates that there was a runtime failure while providing an instance.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/persist/PersistFilter.html b/latest-javadoc/com/google/inject/persist/PersistFilter.html
deleted file mode 100755
index 2ce809d..0000000
--- a/latest-javadoc/com/google/inject/persist/PersistFilter.html
+++ /dev/null
@@ -1,975 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  PersistFilter
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistFilter.html">PersistFilter</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistModule.html">PersistModule</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/Transactional.html">Transactional</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>PersistFilter</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.PersistFilter</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Apply this filter to enable the HTTP Request unit of work and to have
- guice-persist manage the lifecycle of active units of work.
- The filter automatically starts and stops the relevant <code><a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a></code>
- upon javax.servlet.Filter#init(javax.servlet.FilterConfig) and
- javax.servlet.Filter#destroy() respectively.
-
- <p> To be able to use the open session-in-view pattern (i.e. work per request),
- register this filter <b>once</b> in your Guice <code>ServletModule</code>. It is
- important that you register this filter before any other filter.
-
- For multiple providers, you should register this filter once per provider, inside
- a private module for each persist module installed (this must be the same private
- module where the specific persist module is itself installed).
-
- <p>
- Example configuration:
- <pre><code>public class MyModule extends ServletModule {
-    public void configureServlets() {
-      filter("/*").through(PersistFilter.class);
-
-      serve("/index.html").with(MyHtmlServlet.class);
-      // Etc.
-    </code>
-  }
- }</pre>
- <p>
- This filter is thread safe and allows you to create injectors concurrently
- and deploy multiple guice-persist modules within the same injector, or even
- multiple injectors with persist modules withing the same JVM or web app.
- <p>
- This filter requires the Guice Servlet extension.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistFilter.html#PersistFilter(com.google.inject.persist.UnitOfWork, com.google.inject.persist.PersistService)">PersistFilter</a></span>(<a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a> unitOfWork, <a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a> persistService)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistFilter.html#destroy()">destroy</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistFilter.html#doFilter(ServletRequest, ServletResponse, FilterChain)">doFilter</a></span>(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistFilter.html#init(FilterConfig)">init</a></span>(FilterConfig filterConfig)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="PersistFilter(com.google.inject.persist.UnitOfWork, com.google.inject.persist.PersistService)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">PersistFilter</span>
-      <span class="normal">(<a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a> unitOfWork, <a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a> persistService)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="destroy()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">destroy</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="doFilter(ServletRequest, ServletResponse, FilterChain)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">doFilter</span>
-      <span class="normal">(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>IOException</td>
-            <td></td>
-        </tr>  
-        <tr>
-            <th>ServletException</td>
-            <td></td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="init(FilterConfig)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">init</span>
-      <span class="normal">(FilterConfig filterConfig)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>ServletException</td>
-            <td></td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/persist/PersistModule.html b/latest-javadoc/com/google/inject/persist/PersistModule.html
deleted file mode 100755
index 2a9c0bf..0000000
--- a/latest-javadoc/com/google/inject/persist/PersistModule.html
+++ /dev/null
@@ -1,1450 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  PersistModule
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistFilter.html">PersistFilter</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistModule.html">PersistModule</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/Transactional.html">Transactional</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    class
-<h1>PersistModule</h1>
-
-
-
-  
-  
-  
-
-  
-    extends <a href="../../../../com/google/inject/AbstractModule.html">AbstractModule</a><br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell"><a href="../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a></td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.PersistModule</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-direct" class="jd-expando-trigger closed"
-          ><img id="subclasses-direct-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Direct Subclasses
-
-  <div id="subclasses-direct">
-      <div id="subclasses-direct-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a>
-            
-          
-      </div>
-      <div id="subclasses-direct-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></td>
-              <td class="jd-descrcol" width="100%">JPA provider for guice persist.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Install this module to add guice-persist library support for JPA persistence
- providers.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistModule.html#PersistModule()">PersistModule</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistModule.html#configurePersistence()">configurePersistence</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            MethodInterceptor</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistModule.html#getTransactionInterceptor()">getTransactionInterceptor</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.AbstractModule" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.AbstractModule-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  <a href="../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a>
-
-<div id="inherited-methods-com.google.inject.AbstractModule">
-  <div id="inherited-methods-com.google.inject.AbstractModule-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.AbstractModule-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.Key<T>)">bind</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.TypeLiteral<T>)">bind</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bind(java.lang.Class<T>)">bind</a></span>(Class&lt;T&gt; clazz)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindConstant()">bindConstant</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation, <a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#binder()">binder</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets direct access to the underlying <code>Binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> builder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#currentStage()">currentStage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#install(com.google.inject.Module)">install</a></span>(<a href="../../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requestInjection(java.lang.Object)">requestInjection</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection</a></span>(Class...&lt;?&gt; types)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requireBinding(com.google.inject.Key<?>)">requireBinding</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>key</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requireBinding(java.lang.Class<?>)">requireBinding</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>type</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Module" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Module-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Module.html">com.google.inject.Module</a>
-
-<div id="inherited-methods-com.google.inject.Module">
-  <div id="inherited-methods-com.google.inject.Module-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Module-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Module.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="PersistModule()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">PersistModule</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="configure()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">configure</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Configures a <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="configurePersistence()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">configurePersistence</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTransactionInterceptor()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-        abstract 
-         
-        MethodInterceptor
-      </span>
-      <span class="sympad">getTransactionInterceptor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/persist/PersistService.html b/latest-javadoc/com/google/inject/persist/PersistService.html
deleted file mode 100755
index 1b3bcdc..0000000
--- a/latest-javadoc/com/google/inject/persist/PersistService.html
+++ /dev/null
@@ -1,571 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  PersistService
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistFilter.html">PersistFilter</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistModule.html">PersistModule</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/Transactional.html">Transactional</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>PersistService</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.PersistService</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Persistence provider service. Use this to manage the overall
- startup and stop of the persistence module(s).
-
- TODO(dhanji): Integrate with Service API when appropriate.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistService.html#start()">start</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Starts the underlying persistence engine and makes guice-persist ready for
- use.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/PersistService.html#stop()">stop</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Stops the underlying persistence engine.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="start()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">start</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Starts the underlying persistence engine and makes guice-persist ready for
- use. For instance, with JPA, it creates an EntityManagerFactory and may
- open connection pools. This method must be called by your code prior to
- using any guice-persist or JPA artifacts. If already started,
- calling this method does nothing, if already stopped, it also does
- nothing.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="stop()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">stop</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Stops the underlying persistence engine. For instance, with JPA, it
- closes the <code>EntityManagerFactory</code>. If already stopped, calling this
- method does nothing. If not yet started, it also does nothing.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/persist/Transactional.html b/latest-javadoc/com/google/inject/persist/Transactional.html
deleted file mode 100755
index 618615d..0000000
--- a/latest-javadoc/com/google/inject/persist/Transactional.html
+++ /dev/null
@@ -1,580 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Transactional
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistFilter.html">PersistFilter</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistModule.html">PersistModule</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/Transactional.html">Transactional</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>Transactional</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.Transactional</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p><p> Any method or class marked with this annotation will be considered for transactionality.
- Consult the documentation on http://code.google.com/p/google-guice for detailed semantics.
- Marking a method <code>@Transactional</code> will start a new transaction before the method
- executes and commit it after the method returns.
- <p>
- If the method throws an exception, the transaction will be rolled back <em>unless</em>
- you have specifically requested not to in the #ignore() clause.
- <p>
- Similarly, the set of exceptions that will trigger a rollback can be defined in
- the #rollbackOn() clause. By default, only unchecked exceptions trigger a
- rollback.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/persist/UnitOfWork.html b/latest-javadoc/com/google/inject/persist/UnitOfWork.html
deleted file mode 100755
index 6d17521..0000000
--- a/latest-javadoc/com/google/inject/persist/UnitOfWork.html
+++ /dev/null
@@ -1,582 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  UnitOfWork
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistFilter.html">PersistFilter</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistModule.html">PersistModule</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/Transactional.html">Transactional</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>UnitOfWork</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.UnitOfWork</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>This interface is used to gain manual control over the unit of work. This is mostly to do
- work in non-request, non-transactional threads. Or where more fine-grained control over the unit
- of work is required. Starting and ending a unit of work directly corresponds to opening and
- closing a <code>Session</code>, <code>EntityManager</code> or <code>ObjectContainer</code> respectively.
- <p> The
- Unit of Work referred to by UnitOfWork will always be local to the calling thread. Be careful to
- end() in a finally block. Neither JPA, nor Hibernate supports threadsafe sessions (reasoning
- behind thread-locality of Unit of Work semantics).
-
- <ul>
-   <li>Using UnitOfWork with the PersistFilter inside a request is not recommended.</li>
-   <li>Using UnitOfWork with session-per-txn strategy is not terribly clever either.</li>
-   <li>Using UnitOfWork with session-per-request strategy but *outside* a request (i.e. in a
-       background or bootstrap thread) is probably a good use case.</li>
-  </ul></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/UnitOfWork.html#begin()">begin</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Starts a Unit Of Work.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/persist/UnitOfWork.html#end()">end</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Declares an end to the current Unit of Work.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="begin()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">begin</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Starts a Unit Of Work. Underneath, causes a session to the data layer to be opened. If there
- is already one open, the invocation will do nothing. In this way, you can define arbitrary
- units-of-work that nest within one another safely.
-
- Transaction semantics are not affected.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="end()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">end</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Declares an end to the current Unit of Work. Underneath, causes any open session to the data
- layer to close. If there is no Unit of work open, then the call returns silently. You can
- safely invoke end() repeatedly.
- <p>
- Transaction semantics are not affected.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/persist/finder/DynamicFinder.html b/latest-javadoc/com/google/inject/persist/finder/DynamicFinder.html
deleted file mode 100755
index c6061e1..0000000
--- a/latest-javadoc/com/google/inject/persist/finder/DynamicFinder.html
+++ /dev/null
@@ -1,881 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  DynamicFinder
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/Finder.html">Finder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/FirstResult.html">FirstResult</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/MaxResults.html">MaxResults</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>DynamicFinder</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.finder.DynamicFinder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Utility that helps you introspect dynamic finder methods.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html#DynamicFinder(java.lang.reflect.Method)">DynamicFinder</a></span>(Method method)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html#from(java.lang.reflect.Method)">from</a></span>(Method method)</nobr>
-        
-        <div class="jd-descrdiv">Returns some metadata if the method is annotated <code>@Finder</code> or null.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/persist/finder/Finder.html">Finder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html#metadata()">metadata</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="DynamicFinder(java.lang.reflect.Method)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">DynamicFinder</span>
-      <span class="normal">(Method method)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="from(java.lang.reflect.Method)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a>
-      </span>
-      <span class="sympad">from</span>
-      <span class="normal">(Method method)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns some metadata if the method is annotated <code>@Finder</code> or null.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>method</td>
-          <td>a method you want to test as a dynamic finder
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="metadata()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/persist/finder/Finder.html">Finder</a>
-      </span>
-      <span class="sympad">metadata</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/persist/finder/Finder.html b/latest-javadoc/com/google/inject/persist/finder/Finder.html
deleted file mode 100755
index cc93b8a..0000000
--- a/latest-javadoc/com/google/inject/persist/finder/Finder.html
+++ /dev/null
@@ -1,566 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  Finder
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/Finder.html">Finder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/FirstResult.html">FirstResult</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/MaxResults.html">MaxResults</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>Finder</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.finder.Finder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Marks a method stub as a dynamic finder. The method is intercepted and replaced with the
- specified JPAQL query. Provides result auto-boxing and automatic parameter binding.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/persist/finder/FirstResult.html b/latest-javadoc/com/google/inject/persist/finder/FirstResult.html
deleted file mode 100755
index 74d1fcb..0000000
--- a/latest-javadoc/com/google/inject/persist/finder/FirstResult.html
+++ /dev/null
@@ -1,567 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  FirstResult
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/Finder.html">Finder</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/FirstResult.html">FirstResult</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/MaxResults.html">MaxResults</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>FirstResult</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.finder.FirstResult</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Annotate any dynamic finder method's integer argument with this to pass in
- the index of the first result in the result set you are interested in.
- Useful for paging result sets. Complemented by <code><a href="../../../../../com/google/inject/persist/finder/MaxResults.html">MaxResults</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/persist/finder/MaxResults.html b/latest-javadoc/com/google/inject/persist/finder/MaxResults.html
deleted file mode 100755
index 99d5017..0000000
--- a/latest-javadoc/com/google/inject/persist/finder/MaxResults.html
+++ /dev/null
@@ -1,567 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  MaxResults
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/Finder.html">Finder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/FirstResult.html">FirstResult</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/MaxResults.html">MaxResults</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>MaxResults</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.finder.MaxResults</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Annotate any dynamic finder method's integer argument with this to pass in
- the maximum size of returned result window. Usefule for paging result sets.
- Complement of <code><a href="../../../../../com/google/inject/persist/finder/FirstResult.html">FirstResult</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/persist/finder/package-descr.html b/latest-javadoc/com/google/inject/persist/finder/package-descr.html
deleted file mode 100755
index 8d4022b..0000000
--- a/latest-javadoc/com/google/inject/persist/finder/package-descr.html
+++ /dev/null
@@ -1,298 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  com.google.inject.persist.finder Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/Finder.html">Finder</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/FirstResult.html">FirstResult</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/MaxResults.html">MaxResults</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.persist.finder</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<div class="jd-descr">
-<p>Dynamic Finder API for Guice Persist.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/persist/finder/package-summary.html b/latest-javadoc/com/google/inject/persist/finder/package-summary.html
deleted file mode 100755
index a1e7b63..0000000
--- a/latest-javadoc/com/google/inject/persist/finder/package-summary.html
+++ /dev/null
@@ -1,334 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  com.google.inject.persist.finder
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/Finder.html">Finder</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/FirstResult.html">FirstResult</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/finder/MaxResults.html">MaxResults</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.persist.finder</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-
-
-  <div class="jd-descr">
-  <p>Dynamic Finder API for Guice Persist.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a></td>
-              <td class="jd-descrcol" width="100%">Utility that helps you introspect dynamic finder methods.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/persist/jpa/JpaPersistModule.html b/latest-javadoc/com/google/inject/persist/jpa/JpaPersistModule.html
deleted file mode 100755
index 113ee9f..0000000
--- a/latest-javadoc/com/google/inject/persist/jpa/JpaPersistModule.html
+++ /dev/null
@@ -1,1593 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  JpaPersistModule
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>JpaPersistModule</h1>
-
-
-
-  
-  
-  
-
-  
-  
-  
-
-  
-    extends <a href="../../../../../com/google/inject/persist/PersistModule.html">PersistModule</a><br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="4" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell"><a href="../../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a></td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell"><a href="../../../../../com/google/inject/persist/PersistModule.html">com.google.inject.persist.PersistModule</a></td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.persist.jpa.JpaPersistModule</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>JPA provider for guice persist.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html#JpaPersistModule(java.lang.String)">JpaPersistModule</a></span>(String jpaUnit)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html#addFinder(java.lang.Class<T>)">addFinder</a></span>(Class&lt;T&gt; iface)</nobr>
-        
-        <div class="jd-descrdiv">Adds an interface to this module to use as a dynamic finder.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html#properties(java.util.Properties)">properties</a></span>(Properties properties)</nobr>
-        
-        <div class="jd-descrdiv">Configures the JPA persistence provider with a set of properties.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html#configurePersistence()">configurePersistence</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            MethodInterceptor</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html#getTransactionInterceptor()">getTransactionInterceptor</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.persist.PersistModule" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.persist.PersistModule-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  <a href="../../../../../com/google/inject/persist/PersistModule.html">com.google.inject.persist.PersistModule</a>
-
-<div id="inherited-methods-com.google.inject.persist.PersistModule">
-  <div id="inherited-methods-com.google.inject.persist.PersistModule-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.persist.PersistModule-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/PersistModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/PersistModule.html#configurePersistence()">configurePersistence</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            MethodInterceptor</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/persist/PersistModule.html#getTransactionInterceptor()">getTransactionInterceptor</a></span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.AbstractModule" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.AbstractModule-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  <a href="../../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a>
-
-<div id="inherited-methods-com.google.inject.AbstractModule">
-  <div id="inherited-methods-com.google.inject.AbstractModule-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.AbstractModule-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.Key<T>)">bind</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.TypeLiteral<T>)">bind</a></span>(<a href="../../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bind(java.lang.Class<T>)">bind</a></span>(Class&lt;T&gt; clazz)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bindConstant()">bindConstant</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener</a></span>(<a href="../../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation, <a href="../../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#binder()">binder</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets direct access to the underlying <code>Binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../../com/google/inject/Binder.html">Binder</a> builder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes</a></span>(<a href="../../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#currentStage()">currentStage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#install(com.google.inject.Module)">install</a></span>(<a href="../../../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#requestInjection(java.lang.Object)">requestInjection</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection</a></span>(Class...&lt;?&gt; types)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#requireBinding(com.google.inject.Key<?>)">requireBinding</a></span>(<a href="../../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>key</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/AbstractModule.html#requireBinding(java.lang.Class<?>)">requireBinding</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>type</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Module" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Module-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../../com/google/inject/Module.html">com.google.inject.Module</a>
-
-<div id="inherited-methods-com.google.inject.Module">
-  <div id="inherited-methods-com.google.inject.Module-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Module-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/Module.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="JpaPersistModule(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">JpaPersistModule</span>
-      <span class="normal">(String jpaUnit)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="addFinder(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a>
-      </span>
-      <span class="sympad">addFinder</span>
-      <span class="normal">(Class&lt;T&gt; iface)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Adds an interface to this module to use as a dynamic finder.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>iface</td>
-          <td>Any interface type whose methods are all dynamic finders.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="properties(java.util.Properties)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a>
-      </span>
-      <span class="sympad">properties</span>
-      <span class="normal">(Properties properties)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Configures the JPA persistence provider with a set of properties.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>properties</td>
-          <td>A set of name value pairs that configure a JPA persistence
- provider as per the specification.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="configurePersistence()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">configurePersistence</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTransactionInterceptor()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        MethodInterceptor
-      </span>
-      <span class="sympad">getTransactionInterceptor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/persist/jpa/package-descr.html b/latest-javadoc/com/google/inject/persist/jpa/package-descr.html
deleted file mode 100755
index 5801d98..0000000
--- a/latest-javadoc/com/google/inject/persist/jpa/package-descr.html
+++ /dev/null
@@ -1,291 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  com.google.inject.persist.jpa Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.persist.jpa</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<div class="jd-descr">
-<p>guice-persist's Java Persistence API (JPA) support.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/persist/jpa/package-summary.html b/latest-javadoc/com/google/inject/persist/jpa/package-summary.html
deleted file mode 100755
index 43fba06..0000000
--- a/latest-javadoc/com/google/inject/persist/jpa/package-summary.html
+++ /dev/null
@@ -1,327 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  com.google.inject.persist.jpa
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.persist.jpa</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-
-
-  <div class="jd-descr">
-  <p>guice-persist's Java Persistence API (JPA) support.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a></td>
-              <td class="jd-descrcol" width="100%">JPA provider for guice persist.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/persist/package-descr.html b/latest-javadoc/com/google/inject/persist/package-descr.html
deleted file mode 100755
index 022cb87..0000000
--- a/latest-javadoc/com/google/inject/persist/package-descr.html
+++ /dev/null
@@ -1,303 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.persist Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistFilter.html">PersistFilter</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistModule.html">PersistModule</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/Transactional.html">Transactional</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.persist</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<div class="jd-descr">
-<p>Guice Persist: a lightweight persistence library for Guice; this extension requires <code>guice-persist-3.0.jar</code>.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/persist/package-summary.html b/latest-javadoc/com/google/inject/persist/package-summary.html
deleted file mode 100755
index 071c273..0000000
--- a/latest-javadoc/com/google/inject/persist/package-summary.html
+++ /dev/null
@@ -1,360 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.persist
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="selected api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistFilter.html">PersistFilter</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/PersistModule.html">PersistModule</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/persist/Transactional.html">Transactional</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.persist</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-
-
-  <div class="jd-descr">
-  <p>Guice Persist: a lightweight persistence library for Guice; this extension requires <code>guice-persist-3.0.jar</code>.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/persist/PersistService.html">PersistService</a></td>
-              <td class="jd-descrcol" width="100%">Persistence provider service.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/persist/UnitOfWork.html">UnitOfWork</a></td>
-              <td class="jd-descrcol" width="100%">This interface is used to gain manual control over the unit of work.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/persist/PersistFilter.html">PersistFilter</a></td>
-              <td class="jd-descrcol" width="100%">Apply this filter to enable the HTTP Request unit of work and to have
- guice-persist manage the lifecycle of active units of work.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/persist/PersistModule.html">PersistModule</a></td>
-              <td class="jd-descrcol" width="100%">Install this module to add guice-persist library support for JPA persistence
- providers.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/servlet/GuiceFilter.html b/latest-javadoc/com/google/inject/servlet/GuiceFilter.html
deleted file mode 100755
index b8c54dd..0000000
--- a/latest-javadoc/com/google/inject/servlet/GuiceFilter.html
+++ /dev/null
@@ -1,978 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  GuiceFilter
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>GuiceFilter</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.GuiceFilter</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p><p>
- Apply this filter in web.xml above all other filters (typically), to all requests where you plan
-  to use servlet scopes. This is also needed in order to dispatch requests to injectable filters
-  and servlets:
-  <pre>
-  &lt;filter&gt;
-    &lt;filter-name&gt;guiceFilter&lt;/filter-name&gt;
-    &lt;filter-class&gt;<b>com.google.inject.servlet.GuiceFilter</b>&lt;/filter-class&gt;
-  &lt;/filter&gt;
-
-  &lt;filter-mapping&gt;
-    &lt;filter-name&gt;guiceFilter&lt;/filter-name&gt;
-    &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
-  &lt;/filter-mapping&gt;
-  </pre>
-
- This filter must appear before every filter that makes use of Guice injection or servlet
- scopes functionality. Typically, you will only register this filter in web.xml and register
- any other filters (and servlets) using a <code><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/GuiceFilter.html#GuiceFilter()">GuiceFilter</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/GuiceFilter.html#destroy()">destroy</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/GuiceFilter.html#doFilter(ServletRequest, ServletResponse, FilterChain)">doFilter</a></span>(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/GuiceFilter.html#init(FilterConfig)">init</a></span>(FilterConfig filterConfig)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="GuiceFilter()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">GuiceFilter</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="destroy()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">destroy</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="doFilter(ServletRequest, ServletResponse, FilterChain)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">doFilter</span>
-      <span class="normal">(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>IOException</td>
-            <td></td>
-        </tr>  
-        <tr>
-            <th>ServletException</td>
-            <td></td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="init(FilterConfig)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">init</span>
-      <span class="normal">(FilterConfig filterConfig)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>ServletException</td>
-            <td></td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/servlet/GuiceServletContextListener.html b/latest-javadoc/com/google/inject/servlet/GuiceServletContextListener.html
deleted file mode 100755
index 68d9105..0000000
--- a/latest-javadoc/com/google/inject/servlet/GuiceServletContextListener.html
+++ /dev/null
@@ -1,962 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  GuiceServletContextListener
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    class
-<h1>GuiceServletContextListener</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.GuiceServletContextListener</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>As of Guice 2.0 you can still use (your subclasses of) <code>GuiceServletContextListener</code>
- class as a logical place to create and configure your injector. This will ensure the injector
- is created when the web application is deployed.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html#GuiceServletContextListener()">GuiceServletContextListener</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html#contextDestroyed(ServletContextEvent)">contextDestroyed</a></span>(ServletContextEvent servletContextEvent)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html#contextInitialized(ServletContextEvent)">contextInitialized</a></span>(ServletContextEvent servletContextEvent)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Injector.html">Injector</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html#getInjector()">getInjector</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Override this method to create (or otherwise obtain a reference to) your
- injector.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="GuiceServletContextListener()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">GuiceServletContextListener</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="contextDestroyed(ServletContextEvent)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">contextDestroyed</span>
-      <span class="normal">(ServletContextEvent servletContextEvent)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="contextInitialized(ServletContextEvent)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">contextInitialized</span>
-      <span class="normal">(ServletContextEvent servletContextEvent)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="getInjector()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Injector.html">Injector</a>
-      </span>
-      <span class="sympad">getInjector</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Override this method to create (or otherwise obtain a reference to) your
- injector.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/servlet/InstanceFilterBinding.html b/latest-javadoc/com/google/inject/servlet/InstanceFilterBinding.html
deleted file mode 100755
index 33d120a..0000000
--- a/latest-javadoc/com/google/inject/servlet/InstanceFilterBinding.html
+++ /dev/null
@@ -1,661 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InstanceFilterBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>InstanceFilterBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.InstanceFilterBinding</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding to a single instance of a filter. </p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Filter</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html#getFilterInstance()">getFilterInstance</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the filter instance that will be used.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.servlet.ServletModuleBinding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">com.google.inject.servlet.ServletModuleBinding</a>
-
-<div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding">
-  <div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Map&lt;String,&nbsp;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getInitParams()">getInitParams</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns any context params supplied when creating the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getPattern()">getPattern</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern used to match against the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getUriPatternType()">getUriPatternType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern type that this binding was created with.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#matchesUri(java.lang.String)">matchesUri</a></span>(String uri)</nobr>
-        
-        <div class="jd-descrdiv">Returns true if the given URI will match this binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getFilterInstance()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Filter
-      </span>
-      <span class="sympad">getFilterInstance</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the filter instance that will be used. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/servlet/InstanceServletBinding.html b/latest-javadoc/com/google/inject/servlet/InstanceServletBinding.html
deleted file mode 100755
index 5413d7a..0000000
--- a/latest-javadoc/com/google/inject/servlet/InstanceServletBinding.html
+++ /dev/null
@@ -1,661 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InstanceServletBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>InstanceServletBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.InstanceServletBinding</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding to a single instance of a servlet. </p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            HttpServlet</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html#getServletInstance()">getServletInstance</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the servlet instance that will be used.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.servlet.ServletModuleBinding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">com.google.inject.servlet.ServletModuleBinding</a>
-
-<div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding">
-  <div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Map&lt;String,&nbsp;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getInitParams()">getInitParams</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns any context params supplied when creating the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getPattern()">getPattern</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern used to match against the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getUriPatternType()">getUriPatternType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern type that this binding was created with.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#matchesUri(java.lang.String)">matchesUri</a></span>(String uri)</nobr>
-        
-        <div class="jd-descrdiv">Returns true if the given URI will match this binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getServletInstance()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        HttpServlet
-      </span>
-      <span class="sympad">getServletInstance</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the servlet instance that will be used. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/servlet/LinkedFilterBinding.html b/latest-javadoc/com/google/inject/servlet/LinkedFilterBinding.html
deleted file mode 100755
index 8cfef05..0000000
--- a/latest-javadoc/com/google/inject/servlet/LinkedFilterBinding.html
+++ /dev/null
@@ -1,661 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  LinkedFilterBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>LinkedFilterBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.LinkedFilterBinding</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A linked binding to a filter. </p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Filter&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html#getLinkedKey()">getLinkedKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key used to lookup the filter instance.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.servlet.ServletModuleBinding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">com.google.inject.servlet.ServletModuleBinding</a>
-
-<div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding">
-  <div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Map&lt;String,&nbsp;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getInitParams()">getInitParams</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns any context params supplied when creating the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getPattern()">getPattern</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern used to match against the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getUriPatternType()">getUriPatternType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern type that this binding was created with.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#matchesUri(java.lang.String)">matchesUri</a></span>(String uri)</nobr>
-        
-        <div class="jd-descrdiv">Returns true if the given URI will match this binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getLinkedKey()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Filter&gt;
-      </span>
-      <span class="sympad">getLinkedKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the key used to lookup the filter instance. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/servlet/LinkedServletBinding.html b/latest-javadoc/com/google/inject/servlet/LinkedServletBinding.html
deleted file mode 100755
index 7edb7e3..0000000
--- a/latest-javadoc/com/google/inject/servlet/LinkedServletBinding.html
+++ /dev/null
@@ -1,661 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  LinkedServletBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>LinkedServletBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.LinkedServletBinding</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A linked binding to a servlet. </p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;HttpServlet&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html#getLinkedKey()">getLinkedKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key used to lookup the servlet instance.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.servlet.ServletModuleBinding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">com.google.inject.servlet.ServletModuleBinding</a>
-
-<div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding">
-  <div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.servlet.ServletModuleBinding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Map&lt;String,&nbsp;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getInitParams()">getInitParams</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns any context params supplied when creating the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getPattern()">getPattern</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern used to match against the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getUriPatternType()">getUriPatternType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern type that this binding was created with.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#matchesUri(java.lang.String)">matchesUri</a></span>(String uri)</nobr>
-        
-        <div class="jd-descrdiv">Returns true if the given URI will match this binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getLinkedKey()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;HttpServlet&gt;
-      </span>
-      <span class="sympad">getLinkedKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the key used to lookup the servlet instance. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/servlet/RequestParameters.html b/latest-javadoc/com/google/inject/servlet/RequestParameters.html
deleted file mode 100755
index 8796286..0000000
--- a/latest-javadoc/com/google/inject/servlet/RequestParameters.html
+++ /dev/null
@@ -1,586 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  RequestParameters
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>RequestParameters</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.RequestParameters</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Apply this to field or parameters of type <code>Map&lt;String, String[]&gt;</code>
- when you want the HTTP request parameter map to be injected.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/servlet/RequestScoped.html b/latest-javadoc/com/google/inject/servlet/RequestScoped.html
deleted file mode 100755
index ba9a80f..0000000
--- a/latest-javadoc/com/google/inject/servlet/RequestScoped.html
+++ /dev/null
@@ -1,585 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  RequestScoped
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>RequestScoped</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.RequestScoped</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Apply this to implementation classes when you want one instance per request.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html b/latest-javadoc/com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html
deleted file mode 100755
index 35d41bc..0000000
--- a/latest-javadoc/com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html
+++ /dev/null
@@ -1,765 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ServletModule.FilterKeyBindingBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-    static 
-     
-    
-    interface
-<h1>ServletModule.FilterKeyBindingBuilder</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.ServletModule.FilterKeyBindingBuilder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>See the EDSL examples at <code><a href="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets()</a></code></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(Filter)">through</a></span>(Filter filter)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(Filter, java.util.Map<java.lang.String, java.lang.String>)">through</a></span>(Filter filter, Map&lt;String,&nbsp;String&gt; initParams)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(com.google.inject.Key<? extends Filter>)">through</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Filter&gt; filterKey)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(com.google.inject.Key<? extends Filter>, java.util.Map<java.lang.String, java.lang.String>)">through</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Filter&gt; filterKey, Map&lt;String,&nbsp;String&gt; initParams)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(java.lang.Class<? extends Filter>)">through</a></span>(Class&lt;?&nbsp;extends&nbsp;Filter&gt; filterKey)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(java.lang.Class<? extends Filter>, java.util.Map<java.lang.String, java.lang.String>)">through</a></span>(Class&lt;?&nbsp;extends&nbsp;Filter&gt; filterKey, Map&lt;String,&nbsp;String&gt; initParams)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="through(Filter)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">through</span>
-      <span class="normal">(Filter filter)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="through(Filter, java.util.Map<java.lang.String, java.lang.String>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">through</span>
-      <span class="normal">(Filter filter, Map&lt;String,&nbsp;String&gt; initParams)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="through(com.google.inject.Key<? extends Filter>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">through</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Filter&gt; filterKey)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="through(com.google.inject.Key<? extends Filter>, java.util.Map<java.lang.String, java.lang.String>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">through</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Filter&gt; filterKey, Map&lt;String,&nbsp;String&gt; initParams)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="through(java.lang.Class<? extends Filter>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">through</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Filter&gt; filterKey)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="through(java.lang.Class<? extends Filter>, java.util.Map<java.lang.String, java.lang.String>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">through</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Filter&gt; filterKey, Map&lt;String,&nbsp;String&gt; initParams)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html b/latest-javadoc/com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html
deleted file mode 100755
index 44d20bc..0000000
--- a/latest-javadoc/com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html
+++ /dev/null
@@ -1,765 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ServletModule.ServletKeyBindingBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-    static 
-     
-    
-    interface
-<h1>ServletModule.ServletKeyBindingBuilder</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.ServletModule.ServletKeyBindingBuilder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>See the EDSL examples at <code><a href="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets()</a></code></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(HttpServlet)">with</a></span>(HttpServlet servlet)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(HttpServlet, java.util.Map<java.lang.String, java.lang.String>)">with</a></span>(HttpServlet servlet, Map&lt;String,&nbsp;String&gt; initParams)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(com.google.inject.Key<? extends HttpServlet>)">with</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;HttpServlet&gt; servletKey)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(com.google.inject.Key<? extends HttpServlet>, java.util.Map<java.lang.String, java.lang.String>)">with</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;HttpServlet&gt; servletKey, Map&lt;String,&nbsp;String&gt; initParams)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(java.lang.Class<? extends HttpServlet>)">with</a></span>(Class&lt;?&nbsp;extends&nbsp;HttpServlet&gt; servletKey)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(java.lang.Class<? extends HttpServlet>, java.util.Map<java.lang.String, java.lang.String>)">with</a></span>(Class&lt;?&nbsp;extends&nbsp;HttpServlet&gt; servletKey, Map&lt;String,&nbsp;String&gt; initParams)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="with(HttpServlet)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">with</span>
-      <span class="normal">(HttpServlet servlet)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="with(HttpServlet, java.util.Map<java.lang.String, java.lang.String>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">with</span>
-      <span class="normal">(HttpServlet servlet, Map&lt;String,&nbsp;String&gt; initParams)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="with(com.google.inject.Key<? extends HttpServlet>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">with</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;HttpServlet&gt; servletKey)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="with(com.google.inject.Key<? extends HttpServlet>, java.util.Map<java.lang.String, java.lang.String>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">with</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;HttpServlet&gt; servletKey, Map&lt;String,&nbsp;String&gt; initParams)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="with(java.lang.Class<? extends HttpServlet>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">with</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;HttpServlet&gt; servletKey)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="with(java.lang.Class<? extends HttpServlet>, java.util.Map<java.lang.String, java.lang.String>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">with</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;HttpServlet&gt; servletKey, Map&lt;String,&nbsp;String&gt; initParams)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/servlet/ServletModule.html b/latest-javadoc/com/google/inject/servlet/ServletModule.html
deleted file mode 100755
index 5b45f16..0000000
--- a/latest-javadoc/com/google/inject/servlet/ServletModule.html
+++ /dev/null
@@ -1,1880 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ServletModule
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubctors">Ctors</a>
-  
-
-
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>ServletModule</h1>
-
-
-
-  
-  
-  
-
-  
-    extends <a href="../../../../com/google/inject/AbstractModule.html">AbstractModule</a><br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell"><a href="../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a></td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.ServletModule</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Configures the servlet scopes and creates bindings for the servlet API
- objects so you can inject the request, response, session, etc.
-
- <p>
- You should subclass this module to register servlets and
- filters in the <code><a href="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets()</a></code> method.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_2.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        interface</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></td>
-      <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets()</a></code>&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-Guice_2.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        interface</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></td>
-      <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets()</a></code>&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.html#ServletModule()">ServletModule</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets</a></span>()</nobr>
-        
-        <div class="jd-descrdiv"><h3>Servlet Mapping EDSL</h3>
-
- <p> Part of the EDSL builder language for configuring servlets
- and filters with guice-servlet.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.html#filter(java.lang.String, java.lang.String...)">filter</a></span>(String urlPattern, String... morePatterns)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.html#filterRegex(java.lang.String, java.lang.String...)">filterRegex</a></span>(String regex, String... regexes)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            ServletContext</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.html#getServletContext()">getServletContext</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">This method only works if you are using the <code><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></code> to
- create your injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.html#serve(java.lang.String, java.lang.String...)">serve</a></span>(String urlPattern, String... morePatterns)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            <a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModule.html#serveRegex(java.lang.String, java.lang.String...)">serveRegex</a></span>(String regex, String... regexes)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.AbstractModule" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.AbstractModule-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  <a href="../../../../com/google/inject/AbstractModule.html">com.google.inject.AbstractModule</a>
-
-<div id="inherited-methods-com.google.inject.AbstractModule">
-  <div id="inherited-methods-com.google.inject.AbstractModule-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.AbstractModule-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html">LinkedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.Key<T>)">bind</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bind(com.google.inject.TypeLiteral<T>)">bind</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/binder/AnnotatedBindingBuilder.html">AnnotatedBindingBuilder</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bind(java.lang.Class<T>)">bind</a></span>(Class&lt;T&gt; clazz)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/AnnotatedConstantBindingBuilder.html">AnnotatedConstantBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindConstant()">bindConstant</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt; classMatcher, <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a> listener)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation, <a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Binder.html">Binder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#binder()">binder</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets direct access to the underlying <code>Binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#configure()">configure</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Configures a <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            synchronized
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> builder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> converter)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Stage.html">Stage</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#currentStage()">currentStage</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#install(com.google.inject.Module)">install</a></span>(<a href="../../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requestInjection(java.lang.Object)">requestInjection</a></span>(Object instance)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection</a></span>(Class...&lt;?&gt; types)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requireBinding(com.google.inject.Key<?>)">requireBinding</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>key</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/AbstractModule.html#requireBinding(java.lang.Class<?>)">requireBinding</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Adds a dependency from this module to <code>type</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Module" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Module-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Module.html">com.google.inject.Module</a>
-
-<div id="inherited-methods-com.google.inject.Module">
-  <div id="inherited-methods-com.google.inject.Module-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Module-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Module.html#configure(com.google.inject.Binder)">configure</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Contributes bindings and other configurations for this module to <code>binder</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="ServletModule()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ServletModule</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="configure()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        void
-      </span>
-      <span class="sympad">configure</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Configures a <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> via the exposed methods.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="configureServlets()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">configureServlets</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p><h3>Servlet Mapping EDSL</h3>
-
- <p> Part of the EDSL builder language for configuring servlets
- and filters with guice-servlet. Think of this as an in-code replacement for web.xml.
- Filters and servlets are configured here using simple java method calls. Here is a typical
- example of registering a filter when creating your Guice injector:
-
- <pre>
-   Guice.createInjector(..., new ServletModule() {
-
-     @Override
-     protected void configureServlets() {
-       <b>serve("*.html").with(MyServlet.class)</b>
-     }
-   }
- </pre>
-
- This registers a servlet (subclass of <code>HttpServlet</code>) called <code>MyServlet</code> to service
- any web pages ending in <code>.html</code>. You can also use a path-style syntax to register
- servlets:
-
- <pre>
-       <b>serve("/my/*").with(MyServlet.class)</b>
- </pre>
-
- Every servlet (or filter) is required to be a singleton. If you cannot annotate the class
- directly, you should add a separate <code>bind(..).in(Singleton.class)</code> rule elsewhere in
- your module. Mapping a servlet that is bound under any other scope is an error.
-
- <p>
- <h4>Dispatch Order</h4>
- You are free to register as many servlets and filters as you like this way. They will
- be compared and dispatched in the order in which the filter methods are called:
-
- <pre>
-
-   Guice.createInjector(..., new ServletModule() {
-
-     @Override
-     protected void configureServlets() {
-       filter("/*").through(MyFilter.class);
-       filter("*.css").through(MyCssFilter.class);
-       filter("*.jpg").through(new MyJpgFilter());
-       // etc..
-
-       serve("*.html").with(MyServlet.class);
-       serve("/my/*").with(MyServlet.class);
-       serve("*.jpg").with(new MyServlet());
-       // etc..
-      }
-    }
- </pre>
- This will traverse down the list of rules in lexical order. For example, a url
-  "<code>/my/file.js</code>" (after it runs through the matching filters) will first
-  be compared against the servlet mapping:
- 
- <pre>
-       serve("*.html").with(MyServlet.class);
- </pre>
- And failing that, it will descend to the next servlet mapping:
-
- <pre>
-       serve("/my/*").with(MyServlet.class);
- </pre>
-
- Since this rule matches, Guice Servlet will dispatch to <code>MyServlet</code>. These
- two mapping rules can also be written in more compact form using varargs syntax:
-
- <pre>
-       serve(<b>"*.html", "/my/*"</b>).with(MyServlet.class);
- </pre>
- 
- This way you can map several URI patterns to the same servlet. A similar syntax is
- also available for filter mappings.
-
- <p>
- <h4>Regular Expressions</h4>
- You can also map servlets (or filters) to URIs using regular expressions:
- <pre>
-    <b>serveRegex("(.)*ajax(.)*").with(MyAjaxServlet.class)</b>
- </pre>
-
- This will map any URI containing the text "ajax" in it to <code>MyAjaxServlet</code>. Such as:
- <ul>
- <li>http://www.google.com/ajax.html</li>
- <li>http://www.google.com/content/ajax/index</li>
- <li>http://www.google.com/it/is_totally_ajaxian</li>
- </ul>
-
-
- <h3>Initialization Parameters</h3>
-
- Servlets (and filters) allow you to pass in init params
- using the <code>&lt;init-param&gt;</code> tag in web.xml. You can similarly pass in parameters to
- Servlets and filters registered in Guice-servlet using a java.util.Map of parameter
- name/value pairs. For example, to initialize <code>MyServlet</code> with two parameters
- (<code>name="Dhanji", site="google.com"</code>) you could write:
-
- <pre>
-  Map&lt;String, String&gt; params = new HashMap&lt;String, String&gt;();
-  params.put("name", "Dhanji");
-  params.put("site", "google.com");
-
-  ...
-      serve("/*").with(MyServlet.class, <b>params</b>)
- </pre>
-
- <p>
- <h3>Binding Keys</h3>
-
- You can also bind keys rather than classes. This lets you hide
- implementations with package-local visbility and expose them using
- only a Guice module and an annotation:
-
- <pre>
-  ...
-      filter("/*").through(<b>Key.get(Filter.class, Fave.class)</b>);
- </pre>
-
- Where <code>Filter.class</code> refers to the Servlet API interface and <code>Fave.class</code> is a
- custom binding annotation. Elsewhere (in one of your own modules) you can bind this
- filter's implementation:
-
- <pre>
-   bind(Filter.class)<b>.annotatedWith(Fave.class)</b>.to(MyFilterImpl.class);
- </pre>
-
- See <code><a href="../../../../com/google/inject/Binder.html">Binder</a></code> for more information on binding syntax.
-
- <p>
- <h3>Multiple Modules</h3>
-
- It is sometimes useful to capture servlet and filter mappings from multiple different
- modules. This is essential if you want to package and offer drop-in Guice plugins that
- provide servlet functionality.
-
- <p>
- Guice Servlet allows you to register several instances of <code>ServletModule</code> to your
- injector. The order in which these modules are installed determines the dispatch order
- of filters and the precedence order of servlets. For example, if you had two servlet modules,
- <code>RpcModule</code> and <code>WebServiceModule</code> and they each contained a filter that mapped
- to the same URI pattern, <code>"/*"</code>:
-
- <p>
- In <code>RpcModule</code>:
- <pre>
-     filter("/*").through(RpcFilter.class);
- </pre>
-
- In <code>WebServiceModule</code>:
- <pre>
-     filter("/*").through(WebServiceFilter.class);
- </pre>
-
- Then the order in which these filters are dispatched is determined by the order in which
- the modules are installed:
-
- <pre>
-   <b>install(new WebServiceModule());</b>
-   install(new RpcModule());
- </pre>
-
- In the case shown above <code>WebServiceFilter</code> will run first.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="filter(java.lang.String, java.lang.String...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a>
-      </span>
-      <span class="sympad">filter</span>
-      <span class="normal">(String urlPattern, String... morePatterns)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>urlPattern</td>
-          <td>Any Servlet-style pattern. examples: /*, /html/*, *.html, etc.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="filterRegex(java.lang.String, java.lang.String...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a>
-      </span>
-      <span class="sympad">filterRegex</span>
-      <span class="normal">(String regex, String... regexes)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>regex</td>
-          <td>Any Java-style regular expression.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getServletContext()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        ServletContext
-      </span>
-      <span class="sympad">getServletContext</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>This method only works if you are using the <code><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></code> to
- create your injector. Otherwise, it returns null.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>The current servlet context.</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="serve(java.lang.String, java.lang.String...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a>
-      </span>
-      <span class="sympad">serve</span>
-      <span class="normal">(String urlPattern, String... morePatterns)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>urlPattern</td>
-          <td>Any Servlet-style pattern. examples: /*, /html/*, *.html, etc.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="serveRegex(java.lang.String, java.lang.String...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-        final 
-         
-         
-        <a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a>
-      </span>
-      <span class="sympad">serveRegex</span>
-      <span class="normal">(String regex, String... regexes)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>regex</td>
-          <td>Any Java-style regular expression.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/servlet/ServletModuleBinding.html b/latest-javadoc/com/google/inject/servlet/ServletModuleBinding.html
deleted file mode 100755
index 59600f0..0000000
--- a/latest-javadoc/com/google/inject/servlet/ServletModuleBinding.html
+++ /dev/null
@@ -1,743 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ServletModuleBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ServletModuleBinding</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.ServletModuleBinding</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a>,
-            
-              <a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a>,
-            
-              <a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a>,
-            
-              <a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></td>
-              <td class="jd-descrcol" width="100%">A binding to a single instance of a filter.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></td>
-              <td class="jd-descrcol" width="100%">A binding to a single instance of a servlet.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></td>
-              <td class="jd-descrcol" width="100%">A linked binding to a filter.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></td>
-              <td class="jd-descrcol" width="100%">A linked binding to a servlet.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Map&lt;String,&nbsp;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getInitParams()">getInitParams</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns any context params supplied when creating the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getPattern()">getPattern</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern used to match against the binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#getUriPatternType()">getUriPatternType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the pattern type that this binding was created with.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html#matchesUri(java.lang.String)">matchesUri</a></span>(String uri)</nobr>
-        
-        <div class="jd-descrdiv">Returns true if the given URI will match this binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getInitParams()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Map&lt;String,&nbsp;String&gt;
-      </span>
-      <span class="sympad">getInitParams</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns any context params supplied when creating the binding. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getPattern()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getPattern</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the pattern used to match against the binding. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getUriPatternType()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a>
-      </span>
-      <span class="sympad">getUriPatternType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the pattern type that this binding was created with. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="matchesUri(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        boolean
-      </span>
-      <span class="sympad">matchesUri</span>
-      <span class="normal">(String uri)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if the given URI will match this binding. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/servlet/ServletModuleTargetVisitor.html b/latest-javadoc/com/google/inject/servlet/ServletModuleTargetVisitor.html
deleted file mode 100755
index 918a54a..0000000
--- a/latest-javadoc/com/google/inject/servlet/ServletModuleTargetVisitor.html
+++ /dev/null
@@ -1,928 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ServletModuleTargetVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ServletModuleTargetVisitor</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.ServletModuleTargetVisitor&lt;T,&nbsp;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A visitor for the servlet extension.
- 
- If your <code><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> implements this interface, bindings created by using
- <code><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></code> will be visited through this interface.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html#visit(com.google.inject.servlet.InstanceFilterBinding)">visit</a></span>(<a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visits a filter binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html#filter(java.lang.String, java.lang.String...)">filter(String, String...)</a></code> where
- <code><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(java.lang.Class<? extends Filter>)">through(Class<? extends Filter>)</a></code> is called with a Filter.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html#visit(com.google.inject.servlet.InstanceServletBinding)">visit</a></span>(<a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visits a servlet binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html#serve(java.lang.String, java.lang.String...)">serve(String, String...)</a></code> where 
- <code><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(java.lang.Class<? extends HttpServlet>)">with(Class<? extends HttpServlet>)</a></code>, is called with an HttpServlet.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html#visit(com.google.inject.servlet.LinkedFilterBinding)">visit</a></span>(<a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visits a filter binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html#filter(java.lang.String, java.lang.String...)">filter(String, String...)</a></code>, where
- <code><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(java.lang.Class<? extends Filter>)">through(Class<? extends Filter>)</a></code> is called with a Class or Key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html#visit(com.google.inject.servlet.LinkedServletBinding)">visit</a></span>(<a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visits a servlet binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html#serve(java.lang.String, java.lang.String...)">serve(String, String...)</a></code> where
- <code><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(java.lang.Class<? extends HttpServlet>)">with(Class<? extends HttpServlet>)</a></code>, is called with a Class or Key.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.BindingTargetVisitor" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">com.google.inject.spi.BindingTargetVisitor</a>
-
-<div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor">
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConstructorBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a constructor binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding created from converting a bound instance to a new type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ExposedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a key exposed from an enclosed private environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.InstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a linked key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.UntargettedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an untargetted binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visit(com.google.inject.servlet.InstanceFilterBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a> binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visits a filter binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html#filter(java.lang.String, java.lang.String...)">filter(String, String...)</a></code> where
- <code><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(java.lang.Class<? extends Filter>)">through(Class<? extends Filter>)</a></code> is called with a Filter.
- 
- If multiple patterns were specified, this will be called multiple times. 
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.servlet.InstanceServletBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a> binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visits a servlet binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html#serve(java.lang.String, java.lang.String...)">serve(String, String...)</a></code> where 
- <code><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(java.lang.Class<? extends HttpServlet>)">with(Class<? extends HttpServlet>)</a></code>, is called with an HttpServlet.
- 
- If multiple patterns were specified, this will be called multiple times.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.servlet.LinkedFilterBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a> binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visits a filter binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html#filter(java.lang.String, java.lang.String...)">filter(String, String...)</a></code>, where
- <code><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html#through(java.lang.Class<? extends Filter>)">through(Class<? extends Filter>)</a></code> is called with a Class or Key.
- 
- If multiple patterns were specified, this will be called multiple times.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.servlet.LinkedServletBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a> binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visits a servlet binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html#serve(java.lang.String, java.lang.String...)">serve(String, String...)</a></code> where
- <code><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html#with(java.lang.Class<? extends HttpServlet>)">with(Class<? extends HttpServlet>)</a></code>, is called with a Class or Key.
- 
- If multiple patterns were specified, this will be called multiple times.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/servlet/ServletScopes.html b/latest-javadoc/com/google/inject/servlet/ServletScopes.html
deleted file mode 100755
index 2e2eb7a..0000000
--- a/latest-javadoc/com/google/inject/servlet/ServletScopes.html
+++ /dev/null
@@ -1,995 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ServletScopes
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-  <a href="#constants">Constants</a>
-  
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>ServletScopes</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.ServletScopes</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Servlet scopes.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-
-    
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><a href="../../../../com/google/inject/Scope.html">Scope</a></td>
-        <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletScopes.html#REQUEST">REQUEST</a></td>
-        <td class="jd-descrcol" width="100%">HTTP servlet request scope.</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><a href="../../../../com/google/inject/Scope.html">Scope</a></td>
-        <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletScopes.html#SESSION">SESSION</a></td>
-        <td class="jd-descrcol" width="100%">HTTP session scope.</td>
-    </tr>
-    
-    
-
-</table>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            Callable&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletScopes.html#continueRequest(java.util.concurrent.Callable<T>, java.util.Map<com.google.inject.Key<?>, java.lang.Object>)">continueRequest</a></span>(Callable&lt;T&gt; callable, Map&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;,&nbsp;Object&gt; seedMap)</nobr>
-        
-        <div class="jd-descrdiv">Wraps the given callable in a contextual callable that "continues" the
- HTTP request in another thread.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            Callable&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/ServletScopes.html#scopeRequest(java.util.concurrent.Callable<T>, java.util.Map<com.google.inject.Key<?>, java.lang.Object>)">scopeRequest</a></span>(Callable&lt;T&gt; callable, Map&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;,&nbsp;Object&gt; seedMap)</nobr>
-        
-        <div class="jd-descrdiv">Scopes the given callable inside a request scope.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Constants</h2>
-
-
-
-
-<A NAME="REQUEST"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../com/google/inject/Scope.html">Scope</a>
-      </span>
-        REQUEST
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>HTTP servlet request scope.
-</p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="SESSION"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../com/google/inject/Scope.html">Scope</a>
-      </span>
-        SESSION
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>HTTP session scope.
-</p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="continueRequest(java.util.concurrent.Callable<T>, java.util.Map<com.google.inject.Key<?>, java.lang.Object>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        Callable&lt;T&gt;
-      </span>
-      <span class="sympad">continueRequest</span>
-      <span class="normal">(Callable&lt;T&gt; callable, Map&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;,&nbsp;Object&gt; seedMap)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Wraps the given callable in a contextual callable that "continues" the
- HTTP request in another thread. This acts as a way of transporting
- request context data from the request processing thread to to worker
- threads.
- <p>
- There are some limitations:
- <ul>
-   <li>Derived objects (i.e. anything marked @RequestScoped will not be
-      transported.</li>
-   <li>State changes to the HttpServletRequest after this method is called
-      will not be seen in the continued thread.</li>
-   <li>Only the HttpServletRequest, ServletContext and request parameter
-      map are available in the continued thread. The response and session
-      are not available.</li>
- </ul></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>callable</td>
-          <td>code to be executed in another thread, which depends on
-     the request scope.</td>
-        </tr>
-        <tr>
-          <th>seedMap</td>
-          <td>the initial set of scoped instances for Guice to seed the
-     request scope with.  To seed a key with null, use <code>null</code> as
-     the value.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a callable that will invoke the given callable, making the request
-     context available to it.</li></ul>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../../com/google/inject/OutOfScopeException.html">OutOfScopeException</a></td>
-            <td>if this method is called from a non-request
-     thread, or if the request has completed.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="scopeRequest(java.util.concurrent.Callable<T>, java.util.Map<com.google.inject.Key<?>, java.lang.Object>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        Callable&lt;T&gt;
-      </span>
-      <span class="sympad">scopeRequest</span>
-      <span class="normal">(Callable&lt;T&gt; callable, Map&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;,&nbsp;Object&gt; seedMap)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Scopes the given callable inside a request scope. This is not the same
- as the HTTP request scope, but is used if no HTTP request scope is in
- progress. In this way, keys can be scoped as @RequestScoped and exist
- in non-HTTP requests (for example: RPC requests) as well as in HTTP
- request threads.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>callable</td>
-          <td>code to be executed which depends on the request scope.
-     Typically in another thread, but not necessarily so.</td>
-        </tr>
-        <tr>
-          <th>seedMap</td>
-          <td>the initial set of scoped instances for Guice to seed the
-     request scope with.  To seed a key with null, use <code>null</code> as
-     the value.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a callable that when called will run inside the a request scope
-     that exposes the instances in the <code>seedMap</code> as scoped keys.</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/servlet/SessionScoped.html b/latest-javadoc/com/google/inject/servlet/SessionScoped.html
deleted file mode 100755
index 2f8a877..0000000
--- a/latest-javadoc/com/google/inject/servlet/SessionScoped.html
+++ /dev/null
@@ -1,590 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  SessionScoped
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>SessionScoped</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.SessionScoped</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Apply this to implementation classes when you want one instance per session.</p>
-
-
-
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/Scopes.html#SINGLETON">SINGLETON</a></code></li>
-      </ul>
-  </div>
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/servlet/UriPatternType.html b/latest-javadoc/com/google/inject/servlet/UriPatternType.html
deleted file mode 100755
index 086ed4f..0000000
--- a/latest-javadoc/com/google/inject/servlet/UriPatternType.html
+++ /dev/null
@@ -1,1194 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  UriPatternType
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-  <a href="#enumconstants">Enums</a>
-  
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    enum
-<h1>UriPatternType</h1>
-
-
-
-  
-  
-  
-
-  
-    extends Enum&lt;E&nbsp;extends&nbsp;Enum&lt;E&gt;&gt;<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Enum&lt;E&nbsp;extends&nbsp;java.lang.Enum&lt;E&gt;&gt;</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;</td>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.servlet.UriPatternType</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>An enumeration of the available URI-pattern matching styles</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a>&nbsp;</td>
-        <td class="jd-linkcol">REGEX&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
-        <td class="jd-descrcol"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a>&nbsp;</td>
-        <td class="jd-linkcol">SERVLET&nbsp;</td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/UriPatternType.html#valueOf(java.lang.String)">valueOf</a></span>(String name)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            static
-            
-            <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType[]</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/servlet/UriPatternType.html#values()">values</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Enum" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Enum-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Enum
-
-<div id="inherited-methods-java.lang.Enum">
-  <div id="inherited-methods-java.lang.Enum-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Enum-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(E arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;E&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getDeclaringClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">name</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">ordinal</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&nbsp;extends&nbsp;Enum&lt;T&gt;&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">valueOf</span>(Class&lt;T&gt; arg0, String arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Comparable" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Comparable-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.Comparable
-
-<div id="inherited-methods-java.lang.Comparable">
-  <div id="inherited-methods-java.lang.Comparable-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Comparable-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">compareTo</span>(T arg0)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Enum Values</h2>
-
-
-
-
-<A NAME="REGEX"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a>
-      </span>
-        REGEX
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-<A NAME="SERVLET"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a>
-      </span>
-        SERVLET
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="valueOf(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a>
-      </span>
-      <span class="sympad">valueOf</span>
-      <span class="normal">(String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="values()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-         
-         
-        <a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType[]</a>
-      </span>
-      <span class="sympad">values</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/servlet/package-descr.html b/latest-javadoc/com/google/inject/servlet/package-descr.html
deleted file mode 100755
index 5490358..0000000
--- a/latest-javadoc/com/google/inject/servlet/package-descr.html
+++ /dev/null
@@ -1,321 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.servlet Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.servlet</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<div class="jd-descr">
-<p>Servlet API scopes, bindings and registration; this extension requires <code>guice-servlet-3.0.jar</code>.
-
- <p>Apply <code><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></code> to any servlets which will use the servlet
- scopes. Install <code><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></code> into your <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> to install everything at once.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/servlet/package-summary.html b/latest-javadoc/com/google/inject/servlet/package-summary.html
deleted file mode 100755
index 033f66a..0000000
--- a/latest-javadoc/com/google/inject/servlet/package-summary.html
+++ /dev/null
@@ -1,420 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.servlet
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestParameters.html">RequestParameters</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/RequestScoped.html">RequestScoped</a></li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/servlet/SessionScoped.html">SessionScoped</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Enums</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></li>
-      </ul>
-    </li>
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.servlet</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-
-
-  <div class="jd-descr">
-  <p>Servlet API scopes, bindings and registration; this extension requires <code>guice-servlet-3.0.jar</code>.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/InstanceFilterBinding.html">InstanceFilterBinding</a></td>
-              <td class="jd-descrcol" width="100%">A binding to a single instance of a filter.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/InstanceServletBinding.html">InstanceServletBinding</a></td>
-              <td class="jd-descrcol" width="100%">A binding to a single instance of a servlet.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/LinkedFilterBinding.html">LinkedFilterBinding</a></td>
-              <td class="jd-descrcol" width="100%">A linked binding to a filter.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/LinkedServletBinding.html">LinkedServletBinding</a></td>
-              <td class="jd-descrcol" width="100%">A linked binding to a servlet.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html">ServletModule.FilterKeyBindingBuilder</a></td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets()</a></code>&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html">ServletModule.ServletKeyBindingBuilder</a></td>
-              <td class="jd-descrcol" width="100%">See the EDSL examples at <code><a href="../../../../com/google/inject/servlet/ServletModule.html#configureServlets()">configureServlets()</a></code>&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletModuleBinding.html">ServletModuleBinding</a></td>
-              <td class="jd-descrcol" width="100%">A binding created by <code><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">A visitor for the servlet extension.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a></td>
-              <td class="jd-descrcol" width="100%"><p>
- Apply this filter in web.xml above all other filters (typically), to all requests where you plan
-  to use servlet scopes.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a></td>
-              <td class="jd-descrcol" width="100%">As of Guice 2.0 you can still use (your subclasses of) <code>GuiceServletContextListener</code>
- class as a logical place to create and configure your injector.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletModule.html">ServletModule</a></td>
-              <td class="jd-descrcol" width="100%">Configures the servlet scopes and creates bindings for the servlet API
- objects so you can inject the request, response, session, etc.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletScopes.html">ServletScopes</a></td>
-              <td class="jd-descrcol" width="100%">Servlet scopes.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Enums</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/UriPatternType.html">UriPatternType</a></td>
-              <td class="jd-descrcol" width="100%">An enumeration of the available URI-pattern matching styles&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/BindingScopingVisitor.html b/latest-javadoc/com/google/inject/spi/BindingScopingVisitor.html
deleted file mode 100755
index 453211c..0000000
--- a/latest-javadoc/com/google/inject/spi/BindingScopingVisitor.html
+++ /dev/null
@@ -1,753 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  BindingScopingVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>BindingScopingVisitor</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.BindingScopingVisitor&lt;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</td>
-              <td class="jd-descrcol" width="100%">No-op visitor for subclassing.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Visits each of the strategies used to scope an injection.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html#visitEagerSingleton()">visitEagerSingleton</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Visit an eager singleton or single instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html#visitNoScoping()">visitNoScoping</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Visit an unspecified or unscoped strategy.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html#visitScope(com.google.inject.Scope)">visitScope</a></span>(<a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-        <div class="jd-descrdiv">Visit a scope instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html#visitScopeAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)">visitScopeAnnotation</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation)</nobr>
-        
-        <div class="jd-descrdiv">Visit a scope annotation.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visitEagerSingleton()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visitEagerSingleton</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an eager singleton or single instance. This scope strategy is found on both module and
- injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visitNoScoping()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visitNoScoping</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an unspecified or unscoped strategy. On a module, this strategy indicates that the
- injector should use scoping annotations to find a scope. On an injector, it indicates that
- no scope is applied to the binding. An unscoped binding will behave like a scoped one when it
- is linked to a scoped binding.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visitScope(com.google.inject.Scope)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visitScope</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a scope instance. This scope strategy is found on both module and injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visitScopeAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visitScopeAnnotation</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a scope annotation. This scope strategy is found only on module bindings. The instance
- that implements this scope is registered by <code><a href="../../../../com/google/inject/Binder.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">Binder.bindScope()</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/BindingTargetVisitor.html b/latest-javadoc/com/google/inject/spi/BindingTargetVisitor.html
deleted file mode 100755
index 630c1d7..0000000
--- a/latest-javadoc/com/google/inject/spi/BindingTargetVisitor.html
+++ /dev/null
@@ -1,1052 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  BindingTargetVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>BindingTargetVisitor</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.BindingTargetVisitor&lt;T,&nbsp;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;,
-            
-              <a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;,
-            
-              <a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;,
-            
-              <a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;,
-            
-              <a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;,
-            
-              <a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a>
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">A visitor for the AssistedInject extension.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">No-op visitor for subclassing.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>&lt;K,&nbsp;N&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>&lt;K&gt;,&nbsp;M&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>&lt;K&gt;,&nbsp;B&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/BindingEdge.html">BindingEdge</a>&lt;K&gt;,&nbsp;D&nbsp;extends&nbsp;<a href="../../../../com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>&lt;K&gt;&gt;</td>
-              <td class="jd-descrcol" width="100%"><code><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> that adds nodes and edges to the graph based on
- the visited <code><a href="../../../../com/google/inject/Binding.html">Binding</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/multibindings/MultibindingsTargetVisitor.html">MultibindingsTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">A visitor for the multibinder extension.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/servlet/ServletModuleTargetVisitor.html">ServletModuleTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">A visitor for the servlet extension.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a></td>
-              <td class="jd-descrcol" width="100%"><code><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> that returns a Collection of the
- <code><a href="../../../../com/google/inject/Key.html">Key</a></code>s of each Binding's dependencies.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Visits each of the strategies used to find an instance to satisfy an injection.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConstructorBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a constructor binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding created from converting a bound instance to a new type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ExposedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a key exposed from an enclosed private environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.InstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a linked key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.UntargettedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an untargetted binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visit(com.google.inject.spi.ConstructorBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a constructor binding. To resolve injections, an instance is instantiated by invoking
- <code>constructor</code>. This target is found only on injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a binding created from converting a bound instance to a new type. The source binding
- has the same binding annotation but a different type. This target is found only on injector
- bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ExposedBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a binding to a key exposed from an enclosed private environment. This target is only
- found in injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.InstanceBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a instance binding. The same instance is returned for every injection. This target is
- found in both module and injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a linked key binding. The other key's binding is used to resolve injections. This
- target is found in both module and injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type. This target is found only on injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a provider instance binding. The provider's <code>get</code> method is invoked to resolve
- injections. This target is found in both module and injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a provider key binding. To resolve injections, the provider key is first resolved, then
- that provider's <code>get</code> method is invoked. This target is found in both module and injector
- bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.UntargettedBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an untargetted binding. This target is found only on module bindings. It indicates
- that the injector should use its implicit binding strategies to resolve injections.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/ConstructorBinding.html b/latest-javadoc/com/google/inject/spi/ConstructorBinding.html
deleted file mode 100755
index 7c28b8a..0000000
--- a/latest-javadoc/com/google/inject/spi/ConstructorBinding.html
+++ /dev/null
@@ -1,938 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ConstructorBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ConstructorBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; 
-      
-        <a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ConstructorBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding to the constructor of a concrete clss. To resolve injections, an instance is
- instantiated by invoking the constructor.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ConstructorBinding.html#getConstructor()">getConstructor</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the constructor this binding injects.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ConstructorBinding.html#getInjectableMembers()">getInjectableMembers</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns all instance method and field injection points on <code>type</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Map&lt;Method,&nbsp;List&lt;MethodInterceptor&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ConstructorBinding.html#getMethodInterceptors()">getMethodInterceptors</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the interceptors applied to each method, in the order that they will be applied.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Binding.html">com.google.inject.Binding</a>
-
-<div id="inherited-methods-com.google.inject.Binding">
-  <div id="inherited-methods-com.google.inject.Binding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.HasDependencies" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.HasDependencies-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/HasDependencies.html">com.google.inject.spi.HasDependencies</a>
-
-<div id="inherited-methods-com.google.inject.spi.HasDependencies">
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/HasDependencies.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the known dependencies for this type.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getConstructor()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>
-      </span>
-      <span class="sympad">getConstructor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the constructor this binding injects.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getInjectableMembers()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;
-      </span>
-      <span class="sympad">getInjectableMembers</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns all instance method and field injection points on <code>type</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set of injection points. The set has a specified iteration order. All
-      fields are returned and then all methods. Within the fields, supertype fields are returned
-      before subtype fields. Similarly, supertype methods are returned before subtype methods.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMethodInterceptors()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Map&lt;Method,&nbsp;List&lt;MethodInterceptor&gt;&gt;
-      </span>
-      <span class="sympad">getMethodInterceptors</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the interceptors applied to each method, in the order that they will be applied.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty map
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/ConvertedConstantBinding.html b/latest-javadoc/com/google/inject/spi/ConvertedConstantBinding.html
deleted file mode 100755
index 90cfb5e..0000000
--- a/latest-javadoc/com/google/inject/spi/ConvertedConstantBinding.html
+++ /dev/null
@@ -1,985 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ConvertedConstantBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ConvertedConstantBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; 
-      
-        <a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ConvertedConstantBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding created from converting a bound instance to a new type. The source binding has the same
- binding annotation but a different type.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns a singleton set containing only the converted key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;String&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html#getSourceKey()">getSourceKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for the source binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html#getTypeConverterBinding()">getTypeConverterBinding</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the type converter binding used to convert the constant.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html#getValue()">getValue</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the converted value.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Binding.html">com.google.inject.Binding</a>
-
-<div id="inherited-methods-com.google.inject.Binding">
-  <div id="inherited-methods-com.google.inject.Binding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.HasDependencies" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.HasDependencies-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/HasDependencies.html">com.google.inject.spi.HasDependencies</a>
-
-<div id="inherited-methods-com.google.inject.spi.HasDependencies">
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/HasDependencies.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the known dependencies for this type.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getDependencies()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getDependencies</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a singleton set containing only the converted key.
-</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getSourceKey()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;String&gt;
-      </span>
-      <span class="sympad">getSourceKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the key for the source binding. That binding can e retrieved from an injector using
- <code><a href="../../../../com/google/inject/Injector.html#getBinding(com.google.inject.Key<T>)">Injector.getBinding(key)</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTypeConverterBinding()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a>
-      </span>
-      <span class="sympad">getTypeConverterBinding</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the type converter binding used to convert the constant.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getValue()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">getValue</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the converted value.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/DefaultBindingScopingVisitor.html b/latest-javadoc/com/google/inject/spi/DefaultBindingScopingVisitor.html
deleted file mode 100755
index b89d017..0000000
--- a/latest-javadoc/com/google/inject/spi/DefaultBindingScopingVisitor.html
+++ /dev/null
@@ -1,1203 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  DefaultBindingScopingVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>DefaultBindingScopingVisitor</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.DefaultBindingScopingVisitor&lt;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>No-op visitor for subclassing. All interface methods simply delegate to
- <code><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html#visitOther()">visitOther()</a></code>, returning its result.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html#DefaultBindingScopingVisitor()">DefaultBindingScopingVisitor</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html#visitEagerSingleton()">visitEagerSingleton</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Visit an eager singleton or single instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html#visitNoScoping()">visitNoScoping</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Visit an unspecified or unscoped strategy.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html#visitScope(com.google.inject.Scope)">visitScope</a></span>(<a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-        <div class="jd-descrdiv">Visit a scope instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html#visitScopeAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)">visitScopeAnnotation</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation)</nobr>
-        
-        <div class="jd-descrdiv">Visit a scope annotation.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html#visitOther()">visitOther</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Default visit implementation.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.BindingScopingVisitor" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.BindingScopingVisitor-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">com.google.inject.spi.BindingScopingVisitor</a>
-
-<div id="inherited-methods-com.google.inject.spi.BindingScopingVisitor">
-  <div id="inherited-methods-com.google.inject.spi.BindingScopingVisitor-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.BindingScopingVisitor-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html#visitEagerSingleton()">visitEagerSingleton</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Visit an eager singleton or single instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html#visitNoScoping()">visitNoScoping</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Visit an unspecified or unscoped strategy.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html#visitScope(com.google.inject.Scope)">visitScope</a></span>(<a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</nobr>
-        
-        <div class="jd-descrdiv">Visit a scope instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html#visitScopeAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)">visitScopeAnnotation</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation)</nobr>
-        
-        <div class="jd-descrdiv">Visit a scope annotation.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="DefaultBindingScopingVisitor()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">DefaultBindingScopingVisitor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visitEagerSingleton()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visitEagerSingleton</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an eager singleton or single instance. This scope strategy is found on both module and
- injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visitNoScoping()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visitNoScoping</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an unspecified or unscoped strategy. On a module, this strategy indicates that the
- injector should use scoping annotations to find a scope. On an injector, it indicates that
- no scope is applied to the binding. An unscoped binding will behave like a scoped one when it
- is linked to a scoped binding.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visitScope(com.google.inject.Scope)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visitScope</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Scope.html">Scope</a> scope)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a scope instance. This scope strategy is found on both module and injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visitScopeAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visitScopeAnnotation</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; scopeAnnotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a scope annotation. This scope strategy is found only on module bindings. The instance
- that implements this scope is registered by <code><a href="../../../../com/google/inject/Binder.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">Binder.bindScope()</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="visitOther()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visitOther</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Default visit implementation. Returns <code>null</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/DefaultBindingTargetVisitor.html b/latest-javadoc/com/google/inject/spi/DefaultBindingTargetVisitor.html
deleted file mode 100755
index 24790f6..0000000
--- a/latest-javadoc/com/google/inject/spi/DefaultBindingTargetVisitor.html
+++ /dev/null
@@ -1,1560 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  DefaultBindingTargetVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    class
-<h1>DefaultBindingTargetVisitor</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.DefaultBindingTargetVisitor&lt;T,&nbsp;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>No-op visitor for subclassing. All interface methods simply delegate to <code><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visitOther(com.google.inject.Binding<? extends T>)">visitOther(Binding)</a></code>, returning its result.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#DefaultBindingTargetVisitor()">DefaultBindingTargetVisitor</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visit(com.google.inject.spi.ConstructorBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; constructorBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a constructor binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; convertedConstantBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding created from converting a bound instance to a new type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visit(com.google.inject.spi.ExposedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; exposedBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a key exposed from an enclosed private environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visit(com.google.inject.spi.InstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; instanceBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; linkedKeyBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a linked key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visit(com.google.inject.spi.ProviderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; providerBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; providerInstanceBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; providerKeyBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visit(com.google.inject.spi.UntargettedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; untargettedBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an untargetted binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html#visitOther(com.google.inject.Binding<? extends T>)">visitOther</a></span>(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Default visit implementation.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.BindingTargetVisitor" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">com.google.inject.spi.BindingTargetVisitor</a>
-
-<div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor">
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConstructorBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a constructor binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding created from converting a bound instance to a new type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ExposedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a key exposed from an enclosed private environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.InstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a linked key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider instance binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a provider key binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.UntargettedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an untargetted binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="DefaultBindingTargetVisitor()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">DefaultBindingTargetVisitor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visit(com.google.inject.spi.ConstructorBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; constructorBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a constructor binding. To resolve injections, an instance is instantiated by invoking
- <code>constructor</code>. This target is found only on injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; convertedConstantBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a binding created from converting a bound instance to a new type. The source binding
- has the same binding annotation but a different type. This target is found only on injector
- bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ExposedBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; exposedBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a binding to a key exposed from an enclosed private environment. This target is only
- found in injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.InstanceBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; instanceBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a instance binding. The same instance is returned for every injection. This target is
- found in both module and injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; linkedKeyBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a linked key binding. The other key's binding is used to resolve injections. This
- target is found in both module and injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; providerBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
- provided type. This target is found only on injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; providerInstanceBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a provider instance binding. The provider's <code>get</code> method is invoked to resolve
- injections. This target is found in both module and injector bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; providerKeyBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a provider key binding. To resolve injections, the provider key is first resolved, then
- that provider's <code>get</code> method is invoked. This target is found in both module and injector
- bindings.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.UntargettedBinding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; untargettedBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an untargetted binding. This target is found only on module bindings. It indicates
- that the injector should use its implicit binding strategies to resolve injections.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="visitOther(com.google.inject.Binding<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visitOther</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Default visit implementation. Returns <code>null</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/DefaultElementVisitor.html b/latest-javadoc/com/google/inject/spi/DefaultElementVisitor.html
deleted file mode 100755
index 821c592..0000000
--- a/latest-javadoc/com/google/inject/spi/DefaultElementVisitor.html
+++ /dev/null
@@ -1,1829 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  DefaultElementVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-  &#124; <a href="#promethods">Protected Methods</a>
-  
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    class
-<h1>DefaultElementVisitor</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.DefaultElementVisitor&lt;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>No-op visitor for subclassing. All interface methods simply delegate to
- <code><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visitOther(com.google.inject.spi.Element)">visitOther(Element)</a></code>, returning its result.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#DefaultElementVisitor()">DefaultElementVisitor</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.Binding<T>)">visit</a></span>(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a mapping from a key (type and optional annotation) to the strategy for getting
- instances of the type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.DisableCircularProxiesOption)">visit</a></span>(<a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a> option)</nobr>
-        
-        <div class="jd-descrdiv">Visit a disable circular proxies command.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.InjectionRequest<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;?&gt; injectionRequest)</nobr>
-        
-        <div class="jd-descrdiv">Visit a request to inject the instance fields and methods of an instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.InterceptorBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a> interceptorBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a registration of interceptors for matching methods of matching classes.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.MembersInjectorLookup<T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt; lookup)</nobr>
-        
-        <div class="jd-descrdiv">Visit a lookup of the members injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.Message)">visit</a></span>(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-        <div class="jd-descrdiv">Visit an error message and the context in which it occured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.PrivateElements)">visit</a></span>(<a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a> privateElements)</nobr>
-        
-        <div class="jd-descrdiv">Visit a collection of configuration elements for a <code><a href="../../../../com/google/inject/PrivateBinder.html">private binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.ProviderLookup<T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt; providerLookup)</nobr>
-        
-        <div class="jd-descrdiv">Visit a lookup of the provider for a type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.RequireExplicitBindingsOption)">visit</a></span>(<a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a> option)</nobr>
-        
-        <div class="jd-descrdiv">Visit a require explicit bindings command.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.ScopeBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a> scopeBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a registration of a scope annotation with the scope that implements it.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.StaticInjectionRequest)">visit</a></span>(<a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a> staticInjectionRequest)</nobr>
-        
-        <div class="jd-descrdiv">Visit a request to inject the static fields and methods of type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.TypeConverterBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a> typeConverterBinding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a registration of type converters for matching target types.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visit(com.google.inject.spi.TypeListenerBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an injectable type listener binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html#visitOther(com.google.inject.spi.Element)">visitOther</a></span>(<a href="../../../../com/google/inject/spi/Element.html">Element</a> element)</nobr>
-        
-        <div class="jd-descrdiv">Default visit implementation.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.ElementVisitor" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.ElementVisitor-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/ElementVisitor.html">com.google.inject.spi.ElementVisitor</a>
-
-<div id="inherited-methods-com.google.inject.spi.ElementVisitor">
-  <div id="inherited-methods-com.google.inject.spi.ElementVisitor-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.ElementVisitor-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.Binding<T>)">visit</a></span>(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a mapping from a key (type and optional annotation) to the strategy for getting
- instances of the type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.DisableCircularProxiesOption)">visit</a></span>(<a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a> option)</nobr>
-        
-        <div class="jd-descrdiv">Visit a disable circular proxies command.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.InjectionRequest<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;?&gt; request)</nobr>
-        
-        <div class="jd-descrdiv">Visit a request to inject the instance fields and methods of an instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.InterceptorBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a registration of interceptors for matching methods of matching classes.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.MembersInjectorLookup<T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt; lookup)</nobr>
-        
-        <div class="jd-descrdiv">Visit a lookup of the members injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.Message)">visit</a></span>(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-        <div class="jd-descrdiv">Visit an error message and the context in which it occured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.PrivateElements)">visit</a></span>(<a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a> elements)</nobr>
-        
-        <div class="jd-descrdiv">Visit a collection of configuration elements for a <code><a href="../../../../com/google/inject/PrivateBinder.html">private binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.ProviderLookup<T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt; lookup)</nobr>
-        
-        <div class="jd-descrdiv">Visit a lookup of the provider for a type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.RequireExplicitBindingsOption)">visit</a></span>(<a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a> option)</nobr>
-        
-        <div class="jd-descrdiv">Visit a require explicit bindings command.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.ScopeBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a registration of a scope annotation with the scope that implements it.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.StaticInjectionRequest)">visit</a></span>(<a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a> request)</nobr>
-        
-        <div class="jd-descrdiv">Visit a request to inject the static fields and methods of type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.TypeConverterBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a registration of type converters for matching target types.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.TypeListenerBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an injectable type listener binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="DefaultElementVisitor()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">DefaultElementVisitor</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visit(com.google.inject.Binding<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a mapping from a key (type and optional annotation) to the strategy for getting
- instances of the type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.DisableCircularProxiesOption)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a> option)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a disable circular proxies command.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.InjectionRequest<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;?&gt; injectionRequest)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a request to inject the instance fields and methods of an instance.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.InterceptorBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a> interceptorBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a registration of interceptors for matching methods of matching classes.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.MembersInjectorLookup<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt; lookup)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a lookup of the members injector.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.Message)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an error message and the context in which it occured.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.PrivateElements)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a> privateElements)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a collection of configuration elements for a <code><a href="../../../../com/google/inject/PrivateBinder.html">private binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderLookup<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt; providerLookup)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a lookup of the provider for a type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.RequireExplicitBindingsOption)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a> option)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a require explicit bindings command.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ScopeBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a> scopeBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a registration of a scope annotation with the scope that implements it.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.StaticInjectionRequest)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a> staticInjectionRequest)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a request to inject the static fields and methods of type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.TypeConverterBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a> typeConverterBinding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a registration of type converters for matching target types.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.TypeListenerBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a> binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an injectable type listener binding.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-<h2>Protected Methods</h2>
-
-
-
-<A NAME="visitOther(com.google.inject.spi.Element)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        V
-      </span>
-      <span class="sympad">visitOther</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/Element.html">Element</a> element)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Default visit implementation. Returns <code>null</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/Dependency.html b/latest-javadoc/com/google/inject/spi/Dependency.html
deleted file mode 100755
index f2630b2..0000000
--- a/latest-javadoc/com/google/inject/spi/Dependency.html
+++ /dev/null
@@ -1,1210 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Dependency
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>Dependency</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.Dependency&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A variable that can be resolved by an injector.
-
- <p>Use <code><a href="../../../../com/google/inject/spi/Dependency.html#get(com.google.inject.Key<T>)">get(Key<T>)</a></code> to build a freestanding dependency, or <code><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></code> to build one
- that's attached to a constructor, method or field.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Dependency.html#equals(java.lang.Object)">equals</a></span>(Object o)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Dependency.html#forInjectionPoints(java.util.Set<com.google.inject.spi.InjectionPoint>)">forInjectionPoints</a></span>(Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt; injectionPoints)</nobr>
-        
-        <div class="jd-descrdiv">Returns the dependencies from the given injection points.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Dependency.html#get(com.google.inject.Key<T>)">get</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new dependency that is not attached to an injection point.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Dependency.html#getInjectionPoint()">getInjectionPoint</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the injection point to which this dependency belongs, or null if this dependency isn't
- attached to a particular injection point.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Dependency.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key to the binding that satisfies this dependency.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Dependency.html#getParameterIndex()">getParameterIndex</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the index of this dependency in the injection point's parameter list, or <code>-1</code> if
- this dependency does not belong to a parameter list.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Dependency.html#hashCode()">hashCode</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Dependency.html#isNullable()">isNullable</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns true if null is a legal value for this dependency.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Dependency.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="equals(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        boolean
-      </span>
-      <span class="sympad">equals</span>
-      <span class="normal">(Object o)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="forInjectionPoints(java.util.Set<com.google.inject.spi.InjectionPoint>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">forInjectionPoints</span>
-      <span class="normal">(Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt; injectionPoints)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the dependencies from the given injection points.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="get(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new dependency that is not attached to an injection point. The returned dependency is
- nullable.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getInjectionPoint()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>
-      </span>
-      <span class="sympad">getInjectionPoint</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the injection point to which this dependency belongs, or null if this dependency isn't
- attached to a particular injection point.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getKey()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the key to the binding that satisfies this dependency.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getParameterIndex()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        int
-      </span>
-      <span class="sympad">getParameterIndex</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the index of this dependency in the injection point's parameter list, or <code>-1</code> if
- this dependency does not belong to a parameter list. Only method and constuctor dependencies
- are elements in a parameter list.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="hashCode()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        int
-      </span>
-      <span class="sympad">hashCode</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="isNullable()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        boolean
-      </span>
-      <span class="sympad">isNullable</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if null is a legal value for this dependency.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/DisableCircularProxiesOption.html b/latest-javadoc/com/google/inject/spi/DisableCircularProxiesOption.html
deleted file mode 100755
index 9a7698e..0000000
--- a/latest-javadoc/com/google/inject/spi/DisableCircularProxiesOption.html
+++ /dev/null
@@ -1,1014 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  DisableCircularProxiesOption
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>DisableCircularProxiesOption</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.DisableCircularProxiesOption</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A request to disable circular proxies.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/Element.html b/latest-javadoc/com/google/inject/spi/Element.html
deleted file mode 100755
index 1c467ed..0000000
--- a/latest-javadoc/com/google/inject/spi/Element.html
+++ /dev/null
@@ -1,898 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Element
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>Element</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.Element</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-            
-              
-                <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a>,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a>,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/Message.html">Message</a>,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a>,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;,
-              
-              
-            
-              
-                <a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;,
-              
-              and
-                <a href="#" onclick="return toggleInherited(document.getElementById('subclasses-indirect', null))">7 others.</a>
-              
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A mapping from a key (type and optional annotation) to the strategy for getting instances of the
- type.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to the constructor of a concrete clss.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding created from converting a bound instance to a new type.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></td>
-              <td class="jd-descrcol" width="100%">A request to disable circular proxies.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a key exposed from an enclosed private environment.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A request to inject the instance fields and methods of an instance.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a single instance.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></td>
-              <td class="jd-descrcol" width="100%">Registration of interceptors for matching methods of matching classes.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a linked key.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A lookup of the members injector for a type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/Message.html">Message</a></td>
-              <td class="jd-descrcol" width="100%">An error message and the context in which it occured.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></td>
-              <td class="jd-descrcol" width="100%">A private collection of elements that are hidden from the enclosing injector or module by
- default.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the provided type.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a provider instance.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a provider key.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A lookup of the provider for a type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></td>
-              <td class="jd-descrcol" width="100%">A request to require explicit bindings.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></td>
-              <td class="jd-descrcol" width="100%">Registration of a scope annotation with the scope that implements it.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></td>
-              <td class="jd-descrcol" width="100%">A request to inject the static fields and methods of a type.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></td>
-              <td class="jd-descrcol" width="100%">Registration of type converters for matching target types.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></td>
-              <td class="jd-descrcol" width="100%">Binds types (picked using a Matcher) to an type listener.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">An untargetted binding.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A core component of a module or injector.
-
- <p>The elements of a module can be inspected, validated and rewritten. Use <code><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Module...)">Elements.getElements()</a></code> to read the elements
- from a module, and <code><a href="../../../../com/google/inject/spi/Elements.html#getModule(java.lang.Iterable<? extends com.google.inject.spi.Element>)">Elements.getModule()</a></code> to rewrite them.
- This can be used for static analysis and generation of Guice modules.
-
- <p>The elements of an injector can be inspected and exercised. Use <code><a href="../../../../com/google/inject/Injector.html#getBindings()">Injector.getBindings()</a></code> to reflect on Guice injectors.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>UnsupportedOperationException</td>
-            <td>if the <code>applyTo</code> method is not supported by this
-     element.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/ElementVisitor.html b/latest-javadoc/com/google/inject/spi/ElementVisitor.html
deleted file mode 100755
index f2ed4ba..0000000
--- a/latest-javadoc/com/google/inject/spi/ElementVisitor.html
+++ /dev/null
@@ -1,1216 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ElementVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ElementVisitor</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ElementVisitor&lt;V&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</td>
-              <td class="jd-descrcol" width="100%">No-op visitor for subclassing.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Visit elements.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.Binding<T>)">visit</a></span>(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a mapping from a key (type and optional annotation) to the strategy for getting
- instances of the type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.DisableCircularProxiesOption)">visit</a></span>(<a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a> option)</nobr>
-        
-        <div class="jd-descrdiv">Visit a disable circular proxies command.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.InjectionRequest<?>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;?&gt; request)</nobr>
-        
-        <div class="jd-descrdiv">Visit a request to inject the instance fields and methods of an instance.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.InterceptorBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a registration of interceptors for matching methods of matching classes.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.MembersInjectorLookup<T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt; lookup)</nobr>
-        
-        <div class="jd-descrdiv">Visit a lookup of the members injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.Message)">visit</a></span>(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-        <div class="jd-descrdiv">Visit an error message and the context in which it occured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.PrivateElements)">visit</a></span>(<a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a> elements)</nobr>
-        
-        <div class="jd-descrdiv">Visit a collection of configuration elements for a <code><a href="../../../../com/google/inject/PrivateBinder.html">private binder</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.ProviderLookup<T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt; lookup)</nobr>
-        
-        <div class="jd-descrdiv">Visit a lookup of the provider for a type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.RequireExplicitBindingsOption)">visit</a></span>(<a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a> option)</nobr>
-        
-        <div class="jd-descrdiv">Visit a require explicit bindings command.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.ScopeBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a registration of a scope annotation with the scope that implements it.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.StaticInjectionRequest)">visit</a></span>(<a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a> request)</nobr>
-        
-        <div class="jd-descrdiv">Visit a request to inject the static fields and methods of type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.TypeConverterBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit a registration of type converters for matching target types.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ElementVisitor.html#visit(com.google.inject.spi.TypeListenerBinding)">visit</a></span>(<a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a> binding)</nobr>
-        
-        <div class="jd-descrdiv">Visit an injectable type listener binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="visit(com.google.inject.Binding<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a mapping from a key (type and optional annotation) to the strategy for getting
- instances of the type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.DisableCircularProxiesOption)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a> option)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a disable circular proxies command.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.InjectionRequest<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;?&gt; request)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a request to inject the instance fields and methods of an instance.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.InterceptorBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a> binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a registration of interceptors for matching methods of matching classes.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.MembersInjectorLookup<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt; lookup)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a lookup of the members injector.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.Message)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an error message and the context in which it occured.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.PrivateElements)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a> elements)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a collection of configuration elements for a <code><a href="../../../../com/google/inject/PrivateBinder.html">private binder</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ProviderLookup<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt; lookup)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a lookup of the provider for a type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.RequireExplicitBindingsOption)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a> option)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a require explicit bindings command.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.ScopeBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a> binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a registration of a scope annotation with the scope that implements it.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.StaticInjectionRequest)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a> request)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a request to inject the static fields and methods of type.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.TypeConverterBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a> binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit a registration of type converters for matching target types.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="visit(com.google.inject.spi.TypeListenerBinding)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">visit</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a> binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Visit an injectable type listener binding.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/Elements.html b/latest-javadoc/com/google/inject/spi/Elements.html
deleted file mode 100755
index b9f3d7b..0000000
--- a/latest-javadoc/com/google/inject/spi/Elements.html
+++ /dev/null
@@ -1,1070 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Elements
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>Elements</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.Elements</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Exposes elements of a module so they can be inspected, validated or <code><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">rewritten</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Elements.html#Elements()">Elements</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Module...)">getElements</a></span>(<a href="../../../../com/google/inject/Module.html">Module...</a> modules)</nobr>
-        
-        <div class="jd-descrdiv">Records the elements executed by <code>modules</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Stage, com.google.inject.Module...)">getElements</a></span>(<a href="../../../../com/google/inject/Stage.html">Stage</a> stage, <a href="../../../../com/google/inject/Module.html">Module...</a> modules)</nobr>
-        
-        <div class="jd-descrdiv">Records the elements executed by <code>modules</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Elements.html#getElements(com.google.inject.Stage, java.lang.Iterable<? extends com.google.inject.Module>)">getElements</a></span>(<a href="../../../../com/google/inject/Stage.html">Stage</a> stage, Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; modules)</nobr>
-        
-        <div class="jd-descrdiv">Records the elements executed by <code>modules</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Elements.html#getElements(java.lang.Iterable<? extends com.google.inject.Module>)">getElements</a></span>(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; modules)</nobr>
-        
-        <div class="jd-descrdiv">Records the elements executed by <code>modules</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/Module.html">Module</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Elements.html#getModule(java.lang.Iterable<? extends com.google.inject.spi.Element>)">getModule</a></span>(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt; elements)</nobr>
-        
-        <div class="jd-descrdiv">Returns the module composed of <code>elements</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="Elements()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">Elements</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getElements(com.google.inject.Module...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;
-      </span>
-      <span class="sympad">getElements</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Module.html">Module...</a> modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records the elements executed by <code>modules</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getElements(com.google.inject.Stage, com.google.inject.Module...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;
-      </span>
-      <span class="sympad">getElements</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Stage.html">Stage</a> stage, <a href="../../../../com/google/inject/Module.html">Module...</a> modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records the elements executed by <code>modules</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getElements(com.google.inject.Stage, java.lang.Iterable<? extends com.google.inject.Module>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;
-      </span>
-      <span class="sympad">getElements</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Stage.html">Stage</a> stage, Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records the elements executed by <code>modules</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getElements(java.lang.Iterable<? extends com.google.inject.Module>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;
-      </span>
-      <span class="sympad">getElements</span>
-      <span class="normal">(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records the elements executed by <code>modules</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getModule(java.lang.Iterable<? extends com.google.inject.spi.Element>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-      <span class="sympad">getModule</span>
-      <span class="normal">(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt; elements)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the module composed of <code>elements</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/ExposedBinding.html b/latest-javadoc/com/google/inject/spi/ExposedBinding.html
deleted file mode 100755
index 1c72e69..0000000
--- a/latest-javadoc/com/google/inject/spi/ExposedBinding.html
+++ /dev/null
@@ -1,884 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ExposedBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ExposedBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; 
-      
-        <a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ExposedBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding to a key exposed from an enclosed private environment.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ExposedBinding.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Unsupported.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ExposedBinding.html#getPrivateElements()">getPrivateElements</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the enclosed environment that holds the original binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Binding.html">com.google.inject.Binding</a>
-
-<div id="inherited-methods-com.google.inject.Binding">
-  <div id="inherited-methods-com.google.inject.Binding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.HasDependencies" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.HasDependencies-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/HasDependencies.html">com.google.inject.spi.HasDependencies</a>
-
-<div id="inherited-methods-com.google.inject.spi.HasDependencies">
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/HasDependencies.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the known dependencies for this type.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Unsupported. Always throws UnsupportedOperationException.
-</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getPrivateElements()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a>
-      </span>
-      <span class="sympad">getPrivateElements</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the enclosed environment that holds the original binding.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/HasDependencies.html b/latest-javadoc/com/google/inject/spi/HasDependencies.html
deleted file mode 100755
index f0d1378..0000000
--- a/latest-javadoc/com/google/inject/spi/HasDependencies.html
+++ /dev/null
@@ -1,638 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  HasDependencies
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>HasDependencies</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.HasDependencies</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;,
-            
-              <a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;,
-            
-              <a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;,
-            
-              <a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;,
-            
-              <a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;,
-            
-              <a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;,
-            
-              <a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to the constructor of a concrete clss.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding created from converting a bound instance to a new type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a key exposed from an enclosed private environment.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</td>
-              <td class="jd-descrcol" width="100%">
-      <em>
-  This class is deprecated.
-      use <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code> instead.
-</em>&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a single instance.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a provider instance.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A provider with dependencies on other injected types.&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Implemented by <code><a href="../../../../com/google/inject/Binding.html">bindings</a></code>, <code><a href="../../../../com/google/inject/Provider.html">providers</a></code> and instances that expose their dependencies explicitly.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/HasDependencies.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the known dependencies for this type.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getDependencies()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getDependencies</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the known dependencies for this type. If this has dependencies whose values are not
- known statically, a dependency for the <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> will be
- included in the returned set.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/InjectionListener.html b/latest-javadoc/com/google/inject/spi/InjectionListener.html
deleted file mode 100755
index 021a010..0000000
--- a/latest-javadoc/com/google/inject/spi/InjectionListener.html
+++ /dev/null
@@ -1,552 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InjectionListener
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>InjectionListener</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.InjectionListener&lt;I&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Listens for injections into instances of type <code>I</code>. Useful for performing further
- injections, post-injection initialization, and more.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionListener.html#afterInjection(I)">afterInjection</a></span>(I injectee)</nobr>
-        
-        <div class="jd-descrdiv">Invoked by Guice after it injects the fields and methods of instance.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="afterInjection(I)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">afterInjection</span>
-      <span class="normal">(I injectee)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Invoked by Guice after it injects the fields and methods of instance.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>injectee</td>
-          <td>instance that Guice injected dependencies into
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/InjectionPoint.html b/latest-javadoc/com/google/inject/spi/InjectionPoint.html
deleted file mode 100755
index dceaf98..0000000
--- a/latest-javadoc/com/google/inject/spi/InjectionPoint.html
+++ /dev/null
@@ -1,1707 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InjectionPoint
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>InjectionPoint</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.InjectionPoint</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A constructor, field or method that can receive injections. Typically this is a member with the
- @<code><a href="../../../../com/google/inject/Inject.html">Inject</a></code> annotation. For non-private, no argument constructors, the member may
- omit the annotation.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#equals(java.lang.Object)">equals</a></span>(Object o)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#forConstructor(java.lang.reflect.Constructor<T>)">forConstructor</a></span>(Constructor&lt;T&gt; constructor)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new injection point for the specified constructor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#forConstructor(java.lang.reflect.Constructor<T>, com.google.inject.TypeLiteral<? extends T>)">forConstructor</a></span>(Constructor&lt;T&gt; constructor, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new injection point for the specified constructor of <code>type</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#forConstructorOf(com.google.inject.TypeLiteral<?>)">forConstructorOf</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new injection point for the injectable constructor of <code>type</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#forConstructorOf(java.lang.Class<?>)">forConstructorOf</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new injection point for the injectable constructor of <code>type</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#forInstanceMethodsAndFields(com.google.inject.TypeLiteral<?>)">forInstanceMethodsAndFields</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns all instance method and field injection points on <code>type</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#forInstanceMethodsAndFields(java.lang.Class<?>)">forInstanceMethodsAndFields</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns all instance method and field injection points on <code>type</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#forStaticMethodsAndFields(com.google.inject.TypeLiteral<?>)">forStaticMethodsAndFields</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns all static method and field injection points on <code>type</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#forStaticMethodsAndFields(java.lang.Class<?>)">forStaticMethodsAndFields</a></span>(Class&lt;?&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns all static method and field injection points on <code>type</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#getDeclaringType()">getDeclaringType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the generic type that defines this injection point.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            List&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the dependencies for this injection point.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Member</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#getMember()">getMember</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the injected constructor, field, or method.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#hashCode()">hashCode</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#isOptional()">isOptional</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns true if this injection point shall be skipped if the injector cannot resolve bindings
- for all required dependencies.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#isToolable()">isToolable</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns true if the element is annotated with @<code><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionPoint.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="equals(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        boolean
-      </span>
-      <span class="sympad">equals</span>
-      <span class="normal">(Object o)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="forConstructor(java.lang.reflect.Constructor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>
-      </span>
-      <span class="sympad">forConstructor</span>
-      <span class="normal">(Constructor&lt;T&gt; constructor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new injection point for the specified constructor. If the declaring type of <code>constructor</code> is parameterized (such as <code>List&lt;T&gt;</code>), prefer the overload that includes a
- type literal.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>constructor</td>
-          <td>any single constructor present on <code>type</code>.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="forConstructor(java.lang.reflect.Constructor<T>, com.google.inject.TypeLiteral<? extends T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>
-      </span>
-      <span class="sympad">forConstructor</span>
-      <span class="normal">(Constructor&lt;T&gt; constructor, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&nbsp;extends&nbsp;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new injection point for the specified constructor of <code>type</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>constructor</td>
-          <td>any single constructor present on <code>type</code>.</td>
-        </tr>
-        <tr>
-          <th>type</td>
-          <td>the concrete type that defines <code>constructor</code>.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="forConstructorOf(com.google.inject.TypeLiteral<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>
-      </span>
-      <span class="sympad">forConstructorOf</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new injection point for the injectable constructor of <code>type</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>type</td>
-          <td>a concrete type with exactly one constructor annotated @<code><a href="../../../../com/google/inject/Inject.html">Inject</a></code>,
-     or a no-arguments constructor that is not private.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if there is no injectable constructor, more than one injectable
-     constructor, or if parameters of the injectable constructor are malformed, such as a
-     parameter with multiple binding annotations.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="forConstructorOf(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>
-      </span>
-      <span class="sympad">forConstructorOf</span>
-      <span class="normal">(Class&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new injection point for the injectable constructor of <code>type</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>type</td>
-          <td>a concrete type with exactly one constructor annotated @<code><a href="../../../../com/google/inject/Inject.html">Inject</a></code>,
-     or a no-arguments constructor that is not private.</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if there is no injectable constructor, more than one injectable
-     constructor, or if parameters of the injectable constructor are malformed, such as a
-     parameter with multiple binding annotations.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="forInstanceMethodsAndFields(com.google.inject.TypeLiteral<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;
-      </span>
-      <span class="sympad">forInstanceMethodsAndFields</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns all instance method and field injection points on <code>type</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set of injection points. The set has a specified iteration order. All
-      fields are returned and then all methods. Within the fields, supertype fields are returned
-      before subtype fields. Similarly, supertype methods are returned before subtype methods.</li></ul>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if there is a malformed injection point on <code>type</code>, such as
-      a field with multiple binding annotations. The exception's <code><a href="../../../../com/google/inject/ConfigurationException.html#getPartialValue()">partial value</a></code> is a <code>Set&lt;InjectionPoint&gt;</code>
-      of the valid injection points.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="forInstanceMethodsAndFields(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;
-      </span>
-      <span class="sympad">forInstanceMethodsAndFields</span>
-      <span class="normal">(Class&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns all instance method and field injection points on <code>type</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set of injection points. The set has a specified iteration order. All
-      fields are returned and then all methods. Within the fields, supertype fields are returned
-      before subtype fields. Similarly, supertype methods are returned before subtype methods.</li></ul>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if there is a malformed injection point on <code>type</code>, such as
-      a field with multiple binding annotations. The exception's <code><a href="../../../../com/google/inject/ConfigurationException.html#getPartialValue()">partial value</a></code> is a <code>Set&lt;InjectionPoint&gt;</code>
-      of the valid injection points.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="forStaticMethodsAndFields(com.google.inject.TypeLiteral<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;
-      </span>
-      <span class="sympad">forStaticMethodsAndFields</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns all static method and field injection points on <code>type</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set of injection points. The set has a specified iteration order. All
-      fields are returned and then all methods. Within the fields, supertype fields are returned
-      before subtype fields. Similarly, supertype methods are returned before subtype methods.</li></ul>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if there is a malformed injection point on <code>type</code>, such as
-      a field with multiple binding annotations. The exception's <code><a href="../../../../com/google/inject/ConfigurationException.html#getPartialValue()">partial value</a></code> is a <code>Set&lt;InjectionPoint&gt;</code>
-      of the valid injection points.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="forStaticMethodsAndFields(java.lang.Class<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;
-      </span>
-      <span class="sympad">forStaticMethodsAndFields</span>
-      <span class="normal">(Class&lt;?&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns all static method and field injection points on <code>type</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set of injection points. The set has a specified iteration order. All
-      fields are returned and then all methods. Within the fields, supertype fields are returned
-      before subtype fields. Similarly, supertype methods are returned before subtype methods.</li></ul>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if there is a malformed injection point on <code>type</code>, such as
-      a field with multiple binding annotations. The exception's <code><a href="../../../../com/google/inject/ConfigurationException.html#getPartialValue()">partial value</a></code> is a <code>Set&lt;InjectionPoint&gt;</code>
-      of the valid injection points.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getDeclaringType()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;
-      </span>
-      <span class="sympad">getDeclaringType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the generic type that defines this injection point. If the member exists on a
- parameterized type, the result will include more type information than the member's <code><a href="null#getDeclaringClass()">raw declaring class</a></code>.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getDependencies()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        List&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getDependencies</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the dependencies for this injection point. If the injection point is for a method or
- constructor, the dependencies will correspond to that member's parameters. Field injection
- points always have a single dependency for the field itself.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly-empty list
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMember()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Member
-      </span>
-      <span class="sympad">getMember</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the injected constructor, field, or method.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="hashCode()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        int
-      </span>
-      <span class="sympad">hashCode</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="isOptional()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        boolean
-      </span>
-      <span class="sympad">isOptional</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if this injection point shall be skipped if the injector cannot resolve bindings
- for all required dependencies. Both explicit bindings (as specified in a module), and implicit
- bindings (@<code><a href="../../../../com/google/inject/ImplementedBy.html">ImplementedBy</a></code>, default
- constructors etc.) may be used to satisfy optional injection points.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="isToolable()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        boolean
-      </span>
-      <span class="sympad">isToolable</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns true if the element is annotated with @<code><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></code>.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/InjectionRequest.html b/latest-javadoc/com/google/inject/spi/InjectionRequest.html
deleted file mode 100755
index b1c6391..0000000
--- a/latest-javadoc/com/google/inject/spi/InjectionRequest.html
+++ /dev/null
@@ -1,1241 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InjectionRequest
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>InjectionRequest</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.InjectionRequest&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A request to inject the instance fields and methods of an instance. Requests are created
- explicitly in a module using <code><a href="../../../../com/google/inject/Binder.html#requestInjection(java.lang.Object)">requestInjection()</a></code> statements:
- <pre>
-     requestInjection(serviceInstance);</pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionRequest.html#InjectionRequest(java.lang.Object, com.google.inject.TypeLiteral<T>, T)">InjectionRequest</a></span>(Object source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type, T instance)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;R&gt;
-            R</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionRequest.html#acceptVisitor(com.google.inject.spi.ElementVisitor<R>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;R&gt; visitor)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionRequest.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionRequest.html#getInjectionPoints()">getInjectionPoints</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the instance methods and fields of <code>instance</code> that will be injected to fulfill
- this request.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionRequest.html#getInstance()">getInstance</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionRequest.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InjectionRequest.html#getType()">getType</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="InjectionRequest(java.lang.Object, com.google.inject.TypeLiteral<T>, T)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">InjectionRequest</span>
-      <span class="normal">(Object source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type, T instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<R>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        R
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;R&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getInjectionPoints()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;
-      </span>
-      <span class="sympad">getInjectionPoints</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the instance methods and fields of <code>instance</code> that will be injected to fulfill
- this request.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set of injection points. The set has a specified iteration order. All
-      fields are returned and then all methods. Within the fields, supertype fields are returned
-      before subtype fields. Similarly, supertype methods are returned before subtype methods.</li></ul>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if there is a malformed injection point on the class of <code>instance</code>, such as a field with multiple binding annotations. The exception's <code><a href="../../../../com/google/inject/ConfigurationException.html#getPartialValue()">partial value</a></code> is a <code>Set&lt;InjectionPoint&gt;</code>
-      of the valid injection points.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getInstance()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">getInstance</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getType()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/InstanceBinding.html b/latest-javadoc/com/google/inject/spi/InstanceBinding.html
deleted file mode 100755
index 56d9289..0000000
--- a/latest-javadoc/com/google/inject/spi/InstanceBinding.html
+++ /dev/null
@@ -1,881 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InstanceBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>InstanceBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; 
-      
-        <a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.InstanceBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding to a single instance. The same instance is returned for every injection.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InstanceBinding.html#getInjectionPoints()">getInjectionPoints</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the field and method injection points of the instance, injected at injector-creation
- time only.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InstanceBinding.html#getInstance()">getInstance</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the user-supplied instance.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Binding.html">com.google.inject.Binding</a>
-
-<div id="inherited-methods-com.google.inject.Binding">
-  <div id="inherited-methods-com.google.inject.Binding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.HasDependencies" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.HasDependencies-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/HasDependencies.html">com.google.inject.spi.HasDependencies</a>
-
-<div id="inherited-methods-com.google.inject.spi.HasDependencies">
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/HasDependencies.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the known dependencies for this type.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getInjectionPoints()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;
-      </span>
-      <span class="sympad">getInjectionPoints</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the field and method injection points of the instance, injected at injector-creation
- time only.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getInstance()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">getInstance</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the user-supplied instance.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/InterceptorBinding.html b/latest-javadoc/com/google/inject/spi/InterceptorBinding.html
deleted file mode 100755
index 28e39cd..0000000
--- a/latest-javadoc/com/google/inject/spi/InterceptorBinding.html
+++ /dev/null
@@ -1,1168 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  InterceptorBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>InterceptorBinding</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.InterceptorBinding</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Registration of interceptors for matching methods of matching classes. Instances are created
- explicitly in a module using <code><a href="../../../../com/google/inject/Binder.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.Class<?>>, com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor()</a></code> statements:
- <pre>
-     bindInterceptor(Matchers.subclassesOf(MyAction.class),
-         Matchers.annotatedWith(Transactional.class),
-         new MyTransactionInterceptor());</pre>
-
- or from an injectable type listener using <code><a href="../../../../com/google/inject/spi/TypeEncounter.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">TypeEncounter.bindInterceptor()</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InterceptorBinding.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InterceptorBinding.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InterceptorBinding.html#getClassMatcher()">getClassMatcher</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            List&lt;MethodInterceptor&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InterceptorBinding.html#getInterceptors()">getInterceptors</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InterceptorBinding.html#getMethodMatcher()">getMethodMatcher</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/InterceptorBinding.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getClassMatcher()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Class&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getClassMatcher</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getInterceptors()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        List&lt;MethodInterceptor&gt;
-      </span>
-      <span class="sympad">getInterceptors</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMethodMatcher()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt;
-      </span>
-      <span class="sympad">getMethodMatcher</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/LinkedKeyBinding.html b/latest-javadoc/com/google/inject/spi/LinkedKeyBinding.html
deleted file mode 100755
index 3d95161..0000000
--- a/latest-javadoc/com/google/inject/spi/LinkedKeyBinding.html
+++ /dev/null
@@ -1,771 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  LinkedKeyBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>LinkedKeyBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.LinkedKeyBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding to a linked key. The other key's binding is used to resolve injections.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html#getLinkedKey()">getLinkedKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the linked key used to resolve injections.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Binding.html">com.google.inject.Binding</a>
-
-<div id="inherited-methods-com.google.inject.Binding">
-  <div id="inherited-methods-com.google.inject.Binding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getLinkedKey()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;T&gt;
-      </span>
-      <span class="sympad">getLinkedKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the linked key used to resolve injections. That binding can be retrieved from an
- injector using <code><a href="../../../../com/google/inject/Injector.html#getBinding(com.google.inject.Key<T>)">Injector.getBinding(key)</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/MembersInjectorLookup.html b/latest-javadoc/com/google/inject/spi/MembersInjectorLookup.html
deleted file mode 100755
index 8f36488..0000000
--- a/latest-javadoc/com/google/inject/spi/MembersInjectorLookup.html
+++ /dev/null
@@ -1,1307 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  MembersInjectorLookup
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>MembersInjectorLookup</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.MembersInjectorLookup&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A lookup of the members injector for a type. Lookups are created explicitly in a module using
- <code><a href="../../../../com/google/inject/Binder.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector()</a></code> statements:
- <pre>
-     MembersInjector&lt;PaymentService&gt; membersInjector
-         = getMembersInjector(PaymentService.class);</pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html#MembersInjectorLookup(java.lang.Object, com.google.inject.TypeLiteral<T>)">MembersInjectorLookup</a></span>(Object source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html#getDelegate()">getDelegate</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the delegate members injector, or <code>null</code> if it has not yet been initialized.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html#getMembersInjector()">getMembersInjector</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the looked up members injector.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html#getType()">getType</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the type containing the members to be injected.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html#initializeDelegate(com.google.inject.MembersInjector<T>)">initializeDelegate</a></span>(<a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt; delegate)</nobr>
-        
-        <div class="jd-descrdiv">Sets the actual members injector.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="MembersInjectorLookup(java.lang.Object, com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">MembersInjectorLookup</span>
-      <span class="normal">(Object source, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getDelegate()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getDelegate</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the delegate members injector, or <code>null</code> if it has not yet been initialized.
- The delegate will be initialized when this element is processed, or otherwise used to create
- an injector.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the looked up members injector. The result is not valid until this lookup has been
- initialized, which usually happens when the injector is created. The members injector will
- throw an <code>IllegalStateException</code> if you try to use it beforehand.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getType()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the type containing the members to be injected.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="initializeDelegate(com.google.inject.MembersInjector<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">initializeDelegate</span>
-      <span class="normal">(<a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt; delegate)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Sets the actual members injector.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>IllegalStateException</td>
-            <td>if the delegate is already set
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/Message.html b/latest-javadoc/com/google/inject/spi/Message.html
deleted file mode 100755
index 1fb044c..0000000
--- a/latest-javadoc/com/google/inject/spi/Message.html
+++ /dev/null
@@ -1,1497 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Message
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>Message</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-        Serializable 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.Message</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>An error message and the context in which it occured. Messages are usually created internally by
- Guice and its extensions. Messages can be created explicitly in a module using <code><a href="../../../../com/google/inject/Binder.html#addError(java.lang.Throwable)">addError()</a></code> statements:
- <pre>
-     try {
-       bindPropertiesFromFile();
-     } catch (IOException e) {
-       addError(e);
-     }</pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#Message(java.lang.Object, java.lang.String)">Message</a></span>(Object source, String message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#Message(java.lang.String)">Message</a></span>(String message)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#Message(java.util.List<java.lang.Object>, java.lang.String, java.lang.Throwable)">Message</a></span>(List&lt;Object&gt; sources, String message, Throwable cause)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#equals(java.lang.Object)">equals</a></span>(Object o)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Throwable</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#getCause()">getCause</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the throwable that caused this message, or <code>null</code> if this
- message was not caused by a throwable.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#getMessage()">getMessage</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the error message text.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            List&lt;Object&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#getSources()">getSources</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#hashCode()">hashCode</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Message.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="Message(java.lang.Object, java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">Message</span>
-      <span class="normal">(Object source, String message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="Message(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">Message</span>
-      <span class="normal">(String message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="Message(java.util.List<java.lang.Object>, java.lang.String, java.lang.Throwable)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">Message</span>
-      <span class="normal">(List&lt;Object&gt; sources, String message, Throwable cause)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="equals(java.lang.Object)"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        boolean
-      </span>
-      <span class="sympad">equals</span>
-      <span class="normal">(Object o)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getCause()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Throwable
-      </span>
-      <span class="sympad">getCause</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the throwable that caused this message, or <code>null</code> if this
- message was not caused by a throwable.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getMessage()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getMessage</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the error message text.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSources()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        List&lt;Object&gt;
-      </span>
-      <span class="sympad">getSources</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="hashCode()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        int
-      </span>
-      <span class="sympad">hashCode</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/PrivateElements.html b/latest-javadoc/com/google/inject/spi/PrivateElements.html
deleted file mode 100755
index 7e70b69..0000000
--- a/latest-javadoc/com/google/inject/spi/PrivateElements.html
+++ /dev/null
@@ -1,838 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  PrivateElements
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>PrivateElements</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.PrivateElements</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A private collection of elements that are hidden from the enclosing injector or module by
- default. See <code><a href="../../../../com/google/inject/PrivateModule.html">PrivateModule</a></code> for details.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/PrivateElements.html#getElements()">getElements</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the configuration information in this private environment.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/PrivateElements.html#getExposedKeys()">getExposedKeys</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the unique exposed keys for these private elements.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/PrivateElements.html#getExposedSource(com.google.inject.Key<?>)">getExposedSource</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this key was
- exposed.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Injector.html">Injector</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/PrivateElements.html#getInjector()">getInjector</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the child injector that hosts these private elements, or null if the elements haven't
- been used to create an injector.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getElements()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        List&lt;<a href="../../../../com/google/inject/spi/Element.html">Element</a>&gt;
-      </span>
-      <span class="sympad">getElements</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the configuration information in this private environment.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getExposedKeys()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Set&lt;<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getExposedKeys</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the unique exposed keys for these private elements.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getExposedSource(com.google.inject.Key<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Object
-      </span>
-      <span class="sympad">getExposedSource</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this key was
- exposed. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>key</td>
-          <td>one of the keys exposed by this module.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getInjector()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Injector.html">Injector</a>
-      </span>
-      <span class="sympad">getInjector</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the child injector that hosts these private elements, or null if the elements haven't
- been used to create an injector.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/ProviderBinding.html b/latest-javadoc/com/google/inject/spi/ProviderBinding.html
deleted file mode 100755
index c2052d6..0000000
--- a/latest-javadoc/com/google/inject/spi/ProviderBinding.html
+++ /dev/null
@@ -1,772 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ProviderBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ProviderBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ProviderBinding&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">com.google.inject.Provider</a>&lt;?&gt;&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the provided type. This binding
- is used whenever a <code>Provider&lt;T&gt;</code> is injected (as opposed to injecting <code>T</code> directly).</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderBinding.html#getProvidedKey()">getProvidedKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key whose binding is used to <code><a href="../../../../com/google/inject/Provider.html#get()">provide instances</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Binding.html">com.google.inject.Binding</a>
-
-<div id="inherited-methods-com.google.inject.Binding">
-  <div id="inherited-methods-com.google.inject.Binding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getProvidedKey()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&gt;
-      </span>
-      <span class="sympad">getProvidedKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the key whose binding is used to <code><a href="../../../../com/google/inject/Provider.html#get()">provide instances</a></code>. That binding
- can be retrieved from an injector using <code><a href="../../../../com/google/inject/Injector.html#getBinding(com.google.inject.Key<T>)">Injector.getBinding(providedKey)</a></code>
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/ProviderInstanceBinding.html b/latest-javadoc/com/google/inject/spi/ProviderInstanceBinding.html
deleted file mode 100755
index 3866210..0000000
--- a/latest-javadoc/com/google/inject/spi/ProviderInstanceBinding.html
+++ /dev/null
@@ -1,882 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ProviderInstanceBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ProviderInstanceBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; 
-      
-        <a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ProviderInstanceBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding to a provider instance. The provider's <code>get</code> method is invoked to resolve
- injections.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html#getInjectionPoints()">getInjectionPoints</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the field and method injection points of the provider, injected at injector-creation
- time only.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&nbsp;extends&nbsp;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html#getProviderInstance()">getProviderInstance</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the user-supplied, unscoped provider.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Binding.html">com.google.inject.Binding</a>
-
-<div id="inherited-methods-com.google.inject.Binding">
-  <div id="inherited-methods-com.google.inject.Binding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.HasDependencies" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.HasDependencies-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/HasDependencies.html">com.google.inject.spi.HasDependencies</a>
-
-<div id="inherited-methods-com.google.inject.spi.HasDependencies">
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/HasDependencies.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the known dependencies for this type.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getInjectionPoints()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;
-      </span>
-      <span class="sympad">getInjectionPoints</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the field and method injection points of the provider, injected at injector-creation
- time only.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getProviderInstance()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&nbsp;extends&nbsp;T&gt;
-      </span>
-      <span class="sympad">getProviderInstance</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the user-supplied, unscoped provider.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/ProviderKeyBinding.html b/latest-javadoc/com/google/inject/spi/ProviderKeyBinding.html
deleted file mode 100755
index 03a205e..0000000
--- a/latest-javadoc/com/google/inject/spi/ProviderKeyBinding.html
+++ /dev/null
@@ -1,772 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ProviderKeyBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ProviderKeyBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ProviderKeyBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A binding to a provider key. To resolve injections, the provider key is first resolved, then that
- provider's <code>get</code> method is invoked.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html#getProviderKey()">getProviderKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key used to resolve the provider's binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Binding.html">com.google.inject.Binding</a>
-
-<div id="inherited-methods-com.google.inject.Binding">
-  <div id="inherited-methods-com.google.inject.Binding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getProviderKey()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;Provider&lt;?&nbsp;extends&nbsp;T&gt;&gt;
-      </span>
-      <span class="sympad">getProviderKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the key used to resolve the provider's binding. That binding can be retrieved from an
- injector using <code><a href="../../../../com/google/inject/Injector.html#getBinding(com.google.inject.Key<T>)">Injector.getBinding(providerKey)</a></code>
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/ProviderLookup.html b/latest-javadoc/com/google/inject/spi/ProviderLookup.html
deleted file mode 100755
index d1a0bbb..0000000
--- a/latest-javadoc/com/google/inject/spi/ProviderLookup.html
+++ /dev/null
@@ -1,1302 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ProviderLookup
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>ProviderLookup</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ProviderLookup&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A lookup of the provider for a type. Lookups are created explicitly in a module using
- <code><a href="../../../../com/google/inject/Binder.html#getProvider(java.lang.Class<T>)">getProvider()</a></code> statements:
- <pre>
-     Provider&lt;PaymentService&gt; paymentServiceProvider
-         = getProvider(PaymentService.class);</pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderLookup.html#ProviderLookup(java.lang.Object, com.google.inject.Key<T>)">ProviderLookup</a></span>(Object source, <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderLookup.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderLookup.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderLookup.html#getDelegate()">getDelegate</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the delegate provider, or <code>null</code> if it has not yet been initialized.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderLookup.html#getKey()">getKey</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderLookup.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the looked up provider.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderLookup.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderLookup.html#initializeDelegate(com.google.inject.Provider<T>)">initializeDelegate</a></span>(<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt; delegate)</nobr>
-        
-        <div class="jd-descrdiv">Sets the actual provider.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="ProviderLookup(java.lang.Object, com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ProviderLookup</span>
-      <span class="normal">(Object source, <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getDelegate()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getDelegate</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the delegate provider, or <code>null</code> if it has not yet been initialized. The delegate
- will be initialized when this element is processed, or otherwise used to create an injector.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getKey()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the looked up provider. The result is not valid until this lookup has been initialized,
- which usually happens when the injector is created. The provider will throw an <code>IllegalStateException</code> if you try to use it beforehand.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="initializeDelegate(com.google.inject.Provider<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">initializeDelegate</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt; delegate)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Sets the actual provider.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>IllegalStateException</td>
-            <td>if the delegate is already set
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/ProviderWithDependencies.html b/latest-javadoc/com/google/inject/spi/ProviderWithDependencies.html
deleted file mode 100755
index 7cbf5cc..0000000
--- a/latest-javadoc/com/google/inject/spi/ProviderWithDependencies.html
+++ /dev/null
@@ -1,661 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ProviderWithDependencies
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ProviderWithDependencies</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt; 
-      
-        <a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ProviderWithDependencies&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A provider with dependencies on other injected types. If a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> has dependencies that
- aren't specified in injections, this interface should be used to expose all dependencies.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Provider" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Provider-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Provider.html">com.google.inject.Provider</a>
-
-<div id="inherited-methods-com.google.inject.Provider">
-  <div id="inherited-methods-com.google.inject.Provider-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Provider-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Provider.html#get()">get</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Provides an instance of <code>T</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.HasDependencies" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.HasDependencies-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/HasDependencies.html">com.google.inject.spi.HasDependencies</a>
-
-<div id="inherited-methods-com.google.inject.spi.HasDependencies">
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.HasDependencies-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/HasDependencies.html#getDependencies()">getDependencies</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the known dependencies for this type.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-javax.inject.Provider" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-javax.inject.Provider-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  javax.inject.Provider
-
-<div id="inherited-methods-javax.inject.Provider">
-  <div id="inherited-methods-javax.inject.Provider-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-javax.inject.Provider-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">get</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/ProviderWithExtensionVisitor.html b/latest-javadoc/com/google/inject/spi/ProviderWithExtensionVisitor.html
deleted file mode 100755
index 8eb5064..0000000
--- a/latest-javadoc/com/google/inject/spi/ProviderWithExtensionVisitor.html
+++ /dev/null
@@ -1,703 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ProviderWithExtensionVisitor
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ProviderWithExtensionVisitor</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ProviderWithExtensionVisitor&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A Provider that is part of an extension which supports a custom
- BindingTargetVisitor.
- <p> 
- When an extension binds a provider instance, the provider can implement this
- interface to allow users using the
- <code><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor(BindingTargetVisitor)</a></code> method to visit a
- custom visitor designed for that extension. A typical implementation within
- the extension would look like
- <pre> 
- &lt;V, B> V acceptExtensionVisitor(BindingTargetVisitor&lt;B, V> visitor, ProviderInstanceBinding&lt;? extends B> binding) {
-   if(visitor instanceof MyCustomExtensionVisitor) {
-     return ((MyCustomExtensionVisitor&lt;B, V>)visitor).visitCustomExtension(customProperties, binding);
-   } else {
-     return visitor.visit(binding);
-   }
- }</pre> 
- 'MyCustomExtensionVisitor' in the example above would be an interface the
- extension provides that users can implement in order to be notified of custom
- extension information. These visitor interfaces must extend from
- BindingTargetVisitor.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;B,&nbsp;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html#acceptExtensionVisitor(com.google.inject.spi.BindingTargetVisitor<B, V>, com.google.inject.spi.ProviderInstanceBinding<? extends B>)">acceptExtensionVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;B,&nbsp;V&gt; visitor, <a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;B&gt; binding)</nobr>
-        
-        <div class="jd-descrdiv">Instructs the extension determine if the visitor is an instance of a custom
- extension visitor, and if so, visit it using that method.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Provider" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Provider-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Provider.html">com.google.inject.Provider</a>
-
-<div id="inherited-methods-com.google.inject.Provider">
-  <div id="inherited-methods-com.google.inject.Provider-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Provider-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Provider.html#get()">get</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Provides an instance of <code>T</code>.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-javax.inject.Provider" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-javax.inject.Provider-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  javax.inject.Provider
-
-<div id="inherited-methods-javax.inject.Provider">
-  <div id="inherited-methods-javax.inject.Provider-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-javax.inject.Provider-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">get</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptExtensionVisitor(com.google.inject.spi.BindingTargetVisitor<B, V>, com.google.inject.spi.ProviderInstanceBinding<? extends B>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        V
-      </span>
-      <span class="sympad">acceptExtensionVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;B,&nbsp;V&gt; visitor, <a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;B&gt; binding)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Instructs the extension determine if the visitor is an instance of a custom
- extension visitor, and if so, visit it using that method. If the visitor is
- not an instance of the custom extension visitor, this method <b>MUST</b>
- call visitor.visit(binding).
- <p> 
- Due to issues with generics, the type parameters of this method do not
- relate to the type of the provider. In practice, the 'B' type will always
- be a supertype of 'T'.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/RequireExplicitBindingsOption.html b/latest-javadoc/com/google/inject/spi/RequireExplicitBindingsOption.html
deleted file mode 100755
index ad61777..0000000
--- a/latest-javadoc/com/google/inject/spi/RequireExplicitBindingsOption.html
+++ /dev/null
@@ -1,1014 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  RequireExplicitBindingsOption
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>RequireExplicitBindingsOption</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.RequireExplicitBindingsOption</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A request to require explicit bindings.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/ScopeBinding.html b/latest-javadoc/com/google/inject/spi/ScopeBinding.html
deleted file mode 100755
index d6abfea..0000000
--- a/latest-javadoc/com/google/inject/spi/ScopeBinding.html
+++ /dev/null
@@ -1,1117 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ScopeBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>ScopeBinding</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ScopeBinding</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Registration of a scope annotation with the scope that implements it. Instances are created
- explicitly in a module using <code><a href="../../../../com/google/inject/Binder.html#bindScope(java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope)">bindScope()</a></code>
- statements:
- <pre>
-     Scope recordScope = new RecordScope();
-     bindScope(RecordScoped.class, new RecordScope());</pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ScopeBinding.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ScopeBinding.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ScopeBinding.html#getAnnotationType()">getAnnotationType</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Scope.html">Scope</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ScopeBinding.html#getScope()">getScope</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/ScopeBinding.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getAnnotationType()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Class&lt;?&nbsp;extends&nbsp;Annotation&gt;
-      </span>
-      <span class="sympad">getAnnotationType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getScope()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/Scope.html">Scope</a>
-      </span>
-      <span class="sympad">getScope</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/StaticInjectionRequest.html b/latest-javadoc/com/google/inject/spi/StaticInjectionRequest.html
deleted file mode 100755
index 4887818..0000000
--- a/latest-javadoc/com/google/inject/spi/StaticInjectionRequest.html
+++ /dev/null
@@ -1,1137 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  StaticInjectionRequest
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>StaticInjectionRequest</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.StaticInjectionRequest</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>A request to inject the static fields and methods of a type. Requests are created
- explicitly in a module using <code><a href="../../../../com/google/inject/Binder.html#requestStaticInjection(java.lang.Class<?>...)">requestStaticInjection()</a></code> statements:
- <pre>
-     requestStaticInjection(MyLegacyService.class);</pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html#getInjectionPoints()">getInjectionPoints</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the static methods and fields of <code>type</code> that will be injected to fulfill this
- request.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html#getType()">getType</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getInjectionPoints()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Set&lt;<a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>&gt;
-      </span>
-      <span class="sympad">getInjectionPoints</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the static methods and fields of <code>type</code> that will be injected to fulfill this
- request.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a possibly empty set of injection points. The set has a specified iteration order. All
-      fields are returned and then all methods. Within the fields, supertype fields are returned
-      before subtype fields. Similarly, supertype methods are returned before subtype methods.</li></ul>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th><a href="../../../../com/google/inject/ConfigurationException.html">ConfigurationException</a></td>
-            <td>if there is a malformed injection point on <code>type</code>, such as
-      a field with multiple binding annotations. The exception's <code><a href="../../../../com/google/inject/ConfigurationException.html#getPartialValue()">partial value</a></code> is a <code>Set&lt;InjectionPoint&gt;</code>
-      of the valid injection points.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getType()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Class&lt;?&gt;
-      </span>
-      <span class="sympad">getType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/Toolable.html b/latest-javadoc/com/google/inject/spi/Toolable.html
deleted file mode 100755
index c776cb6..0000000
--- a/latest-javadoc/com/google/inject/spi/Toolable.html
+++ /dev/null
@@ -1,607 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Toolable
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>Toolable</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.Toolable</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Instructs an <code><a href="../../../../com/google/inject/Injector.html">Injector</a></code> running in <code><a href="../../../../com/google/inject/Stage.html#TOOL">TOOL</a></code> that a method should be injected.
- This is typically useful for for extensions to Guice that perform additional validation in an
- injected method or field.  This only applies to objects that are already constructed when
- bindings are created (ie., something bound using <code><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toProvider(com.google.inject.Provider<? extends T>)">toProvider</a></code>, <code><a href="../../../../com/google/inject/binder/LinkedBindingBuilder.html#toInstance(T)">toInstance</a></code>, or <code><a href="../../../../com/google/inject/Binder.html#requestInjection(com.google.inject.TypeLiteral<T>, T)">requestInjection</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/TypeConverter.html b/latest-javadoc/com/google/inject/spi/TypeConverter.html
deleted file mode 100755
index aee275f..0000000
--- a/latest-javadoc/com/google/inject/spi/TypeConverter.html
+++ /dev/null
@@ -1,542 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  TypeConverter
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>TypeConverter</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.TypeConverter</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Converts constant string values to a different type.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeConverter.html#convert(java.lang.String, com.google.inject.TypeLiteral<?>)">convert</a></span>(String value, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; toType)</nobr>
-        
-        <div class="jd-descrdiv">Converts a string value.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="convert(java.lang.String, com.google.inject.TypeLiteral<?>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        Object
-      </span>
-      <span class="sympad">convert</span>
-      <span class="normal">(String value, <a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt; toType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Converts a string value. Throws an exception if a conversion error occurs.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/TypeConverterBinding.html b/latest-javadoc/com/google/inject/spi/TypeConverterBinding.html
deleted file mode 100755
index 40632e2..0000000
--- a/latest-javadoc/com/google/inject/spi/TypeConverterBinding.html
+++ /dev/null
@@ -1,1232 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  TypeConverterBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>TypeConverterBinding</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.TypeConverterBinding</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Registration of type converters for matching target types. Instances are created
- explicitly in a module using <code><a href="../../../../com/google/inject/Binder.html#convertToTypes(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">convertToTypes()</a></code> statements:
- <pre>
-     convertToTypes(Matchers.only(TypeLiteral.get(DateTime.class)), new DateTimeConverter());</pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html#TypeConverterBinding(java.lang.Object, com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)">TypeConverterBinding</a></span>(Object source, <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> typeConverter)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html#getTypeConverter()">getTypeConverter</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html#getTypeMatcher()">getTypeMatcher</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html#toString()">toString</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="TypeConverterBinding(java.lang.Object, com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">TypeConverterBinding</span>
-      <span class="normal">(Object source, <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt; typeMatcher, <a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a> typeConverter)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTypeConverter()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a>
-      </span>
-      <span class="sympad">getTypeConverter</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTypeMatcher()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getTypeMatcher</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="toString()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">toString</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#level">API Level </a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/TypeEncounter.html b/latest-javadoc/com/google/inject/spi/TypeEncounter.html
deleted file mode 100755
index 177afb8..0000000
--- a/latest-javadoc/com/google/inject/spi/TypeEncounter.html
+++ /dev/null
@@ -1,1073 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  TypeEncounter
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>TypeEncounter</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.TypeEncounter&lt;I&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Context of an injectable type encounter. Enables reporting errors, registering injection
- listeners and binding method interceptors for injectable type <code>I</code>. It is an error to use
- an encounter after the <code><a href="../../../../com/google/inject/spi/TypeListener.html#hear(com.google.inject.TypeLiteral<I>, com.google.inject.spi.TypeEncounter<I>)">hear()</a></code> method has
- returned.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#addError(com.google.inject.spi.Message)">addError</a></span>(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</nobr>
-        
-        <div class="jd-descrdiv">Records an error message to be presented to the user at a later time.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#addError(java.lang.String, java.lang.Object...)">addError</a></span>(String message, Object... arguments)</nobr>
-        
-        <div class="jd-descrdiv">Records an error message for type <code>I</code> which will be presented to the user at a later
- time.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#addError(java.lang.Throwable)">addError</a></span>(Throwable t)</nobr>
-        
-        <div class="jd-descrdiv">Records an exception for type <code>I</code>, the full details of which will be logged, and the
- message of which will be presented to the user at a later time.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">bindInterceptor</a></span>(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</nobr>
-        
-        <div class="jd-descrdiv">Binds method interceptor[s] to methods matched in type <code>I</code> and its supertypes.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#getMembersInjector(com.google.inject.TypeLiteral<T>)">getMembersInjector</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</nobr>
-        
-        <div class="jd-descrdiv">Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#getMembersInjector(java.lang.Class<T>)">getMembersInjector</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#getProvider(com.google.inject.Key<T>)">getProvider</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</nobr>
-        
-        <div class="jd-descrdiv">Returns the provider used to obtain instances for the given injection key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#getProvider(java.lang.Class<T>)">getProvider</a></span>(Class&lt;T&gt; type)</nobr>
-        
-        <div class="jd-descrdiv">Returns the provider used to obtain instances for the given injection type.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#register(com.google.inject.MembersInjector<? super I>)">register</a></span>(<a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;?&nbsp;super&nbsp;I&gt; membersInjector)</nobr>
-        
-        <div class="jd-descrdiv">Registers a members injector for type <code>I</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeEncounter.html#register(com.google.inject.spi.InjectionListener<? super I>)">register</a></span>(<a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;?&nbsp;super&nbsp;I&gt; listener)</nobr>
-        
-        <div class="jd-descrdiv">Registers an injection listener for type <code>I</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="addError(com.google.inject.spi.Message)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/Message.html">Message</a> message)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records an error message to be presented to the user at a later time.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="addError(java.lang.String, java.lang.Object...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(String message, Object... arguments)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records an error message for type <code>I</code> which will be presented to the user at a later
- time. Unlike throwing an exception, this enable us to continue configuring the Injector and
- discover more errors. Uses <code><a href="null#format(java.lang.String, java.lang.Object...)">format(String, Object[])</a></code> to insert the arguments
- into the message.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="addError(java.lang.Throwable)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">addError</span>
-      <span class="normal">(Throwable t)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Records an exception for type <code>I</code>, the full details of which will be logged, and the
- message of which will be presented to the user at a later time. If your type listener calls
- something that you worry may fail, you should catch the exception and pass it to this method.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">bindInterceptor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;Method&gt; methodMatcher, MethodInterceptor... interceptors)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds method interceptor[s] to methods matched in type <code>I</code> and its supertypes. A
- method is eligible for interception if:
-
- <ul>
-  <li>Guice created the instance the method is on</li>
-  <li>Neither the enclosing type nor the method is final</li>
-  <li>And the method is package-private or more accessible</li>
- </ul></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>methodMatcher</td>
-          <td>matches methods the interceptor should apply to. For
-     example: <code>annotatedWith(Transactional.class)</code>.</td>
-        </tr>
-        <tr>
-          <th>interceptors</td>
-          <td>to bind
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(com.google.inject.TypeLiteral<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;T&gt; typeLiteral)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>. The returned members injector will not be valid until the main
- injector has been created. The members injector will throw an <code>IllegalStateException</code>
- if you try to use it beforehand.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>typeLiteral</td>
-          <td>type to get members injector for
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getMembersInjector(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getMembersInjector</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the members injector used to inject dependencies into methods and fields on instances
- of the given type <code>T</code>. The returned members injector will not be valid until the main
- injector has been created. The members injector will throw an <code>IllegalStateException</code>
- if you try to use it beforehand.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>type</td>
-          <td>type to get members injector for
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(com.google.inject.Key<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt; key)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the provider used to obtain instances for the given injection key. The returned
- provider will not be valid until the injector has been created. The provider will throw an
- <code>IllegalStateException</code> if you try to use it beforehand.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider(java.lang.Class<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">(Class&lt;T&gt; type)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the provider used to obtain instances for the given injection type. The returned
- provider will not be valid until the injetor has been created. The provider will throw an
- <code>IllegalStateException</code> if you try to use it beforehand.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="register(com.google.inject.MembersInjector<? super I>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">register</span>
-      <span class="normal">(<a href="../../../../com/google/inject/MembersInjector.html">MembersInjector</a>&lt;?&nbsp;super&nbsp;I&gt; membersInjector)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Registers a members injector for type <code>I</code>. Guice will use the members injector after its
- performed its own injections on an instance of <code>I</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="register(com.google.inject.spi.InjectionListener<? super I>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">register</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;?&nbsp;super&nbsp;I&gt; listener)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Registers an injection listener for type <code>I</code>. Guice will notify the listener after all
- injections have been performed on an instance of <code>I</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/TypeListener.html b/latest-javadoc/com/google/inject/spi/TypeListener.html
deleted file mode 100755
index ed28ec9..0000000
--- a/latest-javadoc/com/google/inject/spi/TypeListener.html
+++ /dev/null
@@ -1,561 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  TypeListener
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>TypeListener</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.TypeListener</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Listens for Guice to encounter injectable types. If a given type has its constructor injected in
- one situation but only its methods and fields injected in another, Guice will notify this
- listener once.
-
- <p>Useful for extra type checking, <code><a href="../../../../com/google/inject/spi/TypeEncounter.html#register(com.google.inject.spi.InjectionListener<? super I>)">registering injection listeners</a></code>, and <code><a href="../../../../com/google/inject/spi/TypeEncounter.html#bindInterceptor(com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>, org.aopalliance.intercept.MethodInterceptor...)">binding method interceptors</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;I&gt;
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeListener.html#hear(com.google.inject.TypeLiteral<I>, com.google.inject.spi.TypeEncounter<I>)">hear</a></span>(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;I&gt; type, <a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt; encounter)</nobr>
-        
-        <div class="jd-descrdiv">Invoked when Guice encounters a new type eligible for constructor or members injection.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="hear(com.google.inject.TypeLiteral<I>, com.google.inject.spi.TypeEncounter<I>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        void
-      </span>
-      <span class="sympad">hear</span>
-      <span class="normal">(<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;I&gt; type, <a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt; encounter)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Invoked when Guice encounters a new type eligible for constructor or members injection.
- Called during injector creation (or afterwords if Guice encounters a type at run time and
- creates a JIT binding).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>type</td>
-          <td>encountered by Guice</td>
-        </tr>
-        <tr>
-          <th>encounter</td>
-          <td>context of this encounter, enables reporting errors, registering injection
-     listeners and binding method interceptors for <code>type</code>.</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/TypeListenerBinding.html b/latest-javadoc/com/google/inject/spi/TypeListenerBinding.html
deleted file mode 100755
index 47c8ec7..0000000
--- a/latest-javadoc/com/google/inject/spi/TypeListenerBinding.html
+++ /dev/null
@@ -1,1120 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  TypeListenerBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>TypeListenerBinding</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/spi/Element.html">Element</a> 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.TypeListenerBinding</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Binds types (picked using a Matcher) to an type listener. Registrations are created explicitly in
- a module using <code><a href="../../../../com/google/inject/Binder.html#bindListener(com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeListener)">bindListener(Matcher, TypeListener)</a></code> statements:
-
- <pre>
-     register(only(new TypeLiteral&lt;PaymentService&lt;CreditCard>>() {}), listener);</pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html#getListener()">getListener</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the registered listener.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html#getTypeMatcher()">getTypeMatcher</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the type matcher which chooses which types the listener should be notified of.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="acceptVisitor(com.google.inject.spi.ElementVisitor<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        T
-      </span>
-      <span class="sympad">acceptVisitor</span>
-      <span class="normal">(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Accepts an element visitor. Invokes the visitor method specific to this element's type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>visitor</td>
-          <td>to call back on
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="applyTo(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">applyTo</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Writes this module element to the given binder (optional operation).</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>binder</td>
-          <td>to apply configuration element to</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="getListener()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a>
-      </span>
-      <span class="sympad">getListener</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the registered listener. </p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        Object
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an arbitrary object containing information about the "place" where this element was
- configured. Used by Guice in the production of descriptive error messages.
-
- <p>Tools might specially handle types they know about; <code>StackTraceElement</code> is a good
- example. Tools should simply call <code>toString()</code> on the source object if the type is
- unfamiliar.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getTypeMatcher()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/matcher/Matcher.html">Matcher</a>&lt;?&nbsp;super&nbsp;<a href="../../../../com/google/inject/TypeLiteral.html">TypeLiteral</a>&lt;?&gt;&gt;
-      </span>
-      <span class="sympad">getTypeMatcher</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns the type matcher which chooses which types the listener should be notified of. </p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/UntargettedBinding.html b/latest-javadoc/com/google/inject/spi/UntargettedBinding.html
deleted file mode 100755
index 9ac85fa..0000000
--- a/latest-javadoc/com/google/inject/spi/UntargettedBinding.html
+++ /dev/null
@@ -1,702 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  UntargettedBinding
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>UntargettedBinding</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/Binding.html">Binding</a>&lt;T&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.UntargettedBinding&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>An untargetted binding. This binding indicates that the injector should use its implicit binding
- strategies to resolve injections.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Binding" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.Binding-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/Binding.html">com.google.inject.Binding</a>
-
-<div id="inherited-methods-com.google.inject.Binding">
-  <div id="inherited-methods-com.google.inject.Binding-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.Binding-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptScopingVisitor(com.google.inject.spi.BindingScopingVisitor<V>)">acceptScopingVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a scoping visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;V&gt;
-            V</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;?&nbsp;super&nbsp;T,&nbsp;V&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts a target visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Key.html">Key</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the key for this binding.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/Binding.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns the scoped provider guice uses to fulfill requests for this
- binding.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.Element" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.spi.Element-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/spi/Element.html">com.google.inject.spi.Element</a>
-
-<div id="inherited-methods-com.google.inject.spi.Element">
-  <div id="inherited-methods-com.google.inject.spi.Element-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.spi.Element-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            &lt;T&gt;
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#acceptVisitor(com.google.inject.spi.ElementVisitor<T>)">acceptVisitor</a></span>(<a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;T&gt; visitor)</nobr>
-        
-        <div class="jd-descrdiv">Accepts an element visitor.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">applyTo</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-        <div class="jd-descrdiv">Writes this module element to the given binder (optional operation).</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spi/Element.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Returns an arbitrary object containing information about the "place" where this element was
- configured.</div>
-  
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/package-descr.html b/latest-javadoc/com/google/inject/spi/package-descr.html
deleted file mode 100755
index ab0e75f..0000000
--- a/latest-javadoc/com/google/inject/spi/package-descr.html
+++ /dev/null
@@ -1,337 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.spi Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.spi</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<div class="jd-descr">
-<p>Guice service provider interface
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spi/package-summary.html b/latest-javadoc/com/google/inject/spi/package-summary.html
deleted file mode 100755
index 055c543..0000000
--- a/latest-javadoc/com/google/inject/spi/package-summary.html
+++ /dev/null
@@ -1,529 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.spi
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.spi</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-
-
-  <div class="jd-descr">
-  <p>Guice service provider interface
-</p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>&lt;V&gt;</td>
-              <td class="jd-descrcol" width="100%">Visits each of the strategies used to scope an injection.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">Visits each of the strategies used to find an instance to satisfy an injection.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to the constructor of a concrete clss.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding created from converting a bound instance to a new type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/Element.html">Element</a></td>
-              <td class="jd-descrcol" width="100%">A core component of a module or injector.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>&lt;V&gt;</td>
-              <td class="jd-descrcol" width="100%">Visit elements.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a key exposed from an enclosed private environment.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></td>
-              <td class="jd-descrcol" width="100%">Implemented by <code><a href="../../../../com/google/inject/Binding.html">bindings</a></code>, <code><a href="../../../../com/google/inject/Provider.html">providers</a></code> and instances that expose their dependencies explicitly.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a>&lt;I&gt;</td>
-              <td class="jd-descrcol" width="100%">Listens for injections into instances of type <code>I</code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a single instance.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a linked key.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></td>
-              <td class="jd-descrcol" width="100%">A private collection of elements that are hidden from the enclosing injector or module by
- default.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;T&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;?&gt;&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the provided type.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a provider instance.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A binding to a provider key.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A provider with dependencies on other injected types.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A Provider that is part of an extension which supports a custom
- BindingTargetVisitor.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></td>
-              <td class="jd-descrcol" width="100%">Converts constant string values to a different type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a>&lt;I&gt;</td>
-              <td class="jd-descrcol" width="100%">Context of an injectable type encounter.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></td>
-              <td class="jd-descrcol" width="100%">Listens for Guice to encounter injectable types.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">An untargetted binding.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>&lt;V&gt;</td>
-              <td class="jd-descrcol" width="100%">No-op visitor for subclassing.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>&lt;T,&nbsp;V&gt;</td>
-              <td class="jd-descrcol" width="100%">No-op visitor for subclassing.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>&lt;V&gt;</td>
-              <td class="jd-descrcol" width="100%">No-op visitor for subclassing.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A variable that can be resolved by an injector.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></td>
-              <td class="jd-descrcol" width="100%">A request to disable circular proxies.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></td>
-              <td class="jd-descrcol" width="100%">Exposes elements of a module so they can be inspected, validated or <code><a href="../../../../com/google/inject/spi/Element.html#applyTo(com.google.inject.Binder)">rewritten</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></td>
-              <td class="jd-descrcol" width="100%">A constructor, field or method that can receive injections.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A request to inject the instance fields and methods of an instance.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></td>
-              <td class="jd-descrcol" width="100%">Registration of interceptors for matching methods of matching classes.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A lookup of the members injector for a type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/Message.html">Message</a></td>
-              <td class="jd-descrcol" width="100%">An error message and the context in which it occured.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">A lookup of the provider for a type.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></td>
-              <td class="jd-descrcol" width="100%">A request to require explicit bindings.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></td>
-              <td class="jd-descrcol" width="100%">Registration of a scope annotation with the scope that implements it.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></td>
-              <td class="jd-descrcol" width="100%">A request to inject the static fields and methods of a type.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></td>
-              <td class="jd-descrcol" width="100%">Registration of type converters for matching target types.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></td>
-              <td class="jd-descrcol" width="100%">Binds types (picked using a Matcher) to an type listener.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spring/SpringIntegration.html b/latest-javadoc/com/google/inject/spring/SpringIntegration.html
deleted file mode 100755
index 79721c4..0000000
--- a/latest-javadoc/com/google/inject/spring/SpringIntegration.html
+++ /dev/null
@@ -1,812 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  SpringIntegration
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spring/SpringIntegration.html">SpringIntegration</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>SpringIntegration</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spring.SpringIntegration</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Integrates Guice with Spring.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spring/SpringIntegration.html#bindAll(com.google.inject.Binder, ListableBeanFactory)">bindAll</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, ListableBeanFactory beanFactory)</nobr>
-        
-        <div class="jd-descrdiv">Binds all Spring beans from the given factory by name.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/spring/SpringIntegration.html#fromSpring(java.lang.Class<T>, java.lang.String)">fromSpring</a></span>(Class&lt;T&gt; type, String name)</nobr>
-        
-        <div class="jd-descrdiv">Creates a provider which looks up objects from Spring using the given name.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="bindAll(com.google.inject.Binder, ListableBeanFactory)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">bindAll</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder, ListableBeanFactory beanFactory)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Binds all Spring beans from the given factory by name. For a Spring bean
- named "foo", this method creates a binding to the bean's type and
- <code>@Named("foo")</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="../../../../com/google/inject/name/Named.html">Named</a></code></li><li><code><a href="../../../../com/google/inject/name/Names.html#named(java.lang.String)">named(String)</a></code></li>
-      </ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="fromSpring(java.lang.Class<T>, java.lang.String)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">fromSpring</span>
-      <span class="normal">(Class&lt;T&gt; type, String name)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Creates a provider which looks up objects from Spring using the given name.
- Expects a binding to org.springframework.beans.factory.BeanFactory. Example usage:
-
- <pre>
- bind(DataSource.class)
-   .toProvider(fromSpring(DataSource.class, "dataSource"));
- </pre>
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spring/package-descr.html b/latest-javadoc/com/google/inject/spring/package-descr.html
deleted file mode 100755
index b0c18ce..0000000
--- a/latest-javadoc/com/google/inject/spring/package-descr.html
+++ /dev/null
@@ -1,291 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.spring Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spring/SpringIntegration.html">SpringIntegration</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.spring</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<div class="jd-descr">
-<p>Spring integration; this extension requires <code>guice-spring-3.0.jar</code>.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/spring/package-summary.html b/latest-javadoc/com/google/inject/spring/package-summary.html
deleted file mode 100755
index 20f51e3..0000000
--- a/latest-javadoc/com/google/inject/spring/package-summary.html
+++ /dev/null
@@ -1,327 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.spring
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spring/SpringIntegration.html">SpringIntegration</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.spring</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-
-
-  <div class="jd-descr">
-  <p>Spring integration; this extension requires <code>guice-spring-3.0.jar</code>.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/spring/SpringIntegration.html">SpringIntegration</a></td>
-              <td class="jd-descrcol" width="100%">Integrates Guice with Spring.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/throwingproviders/CheckedProvider.html b/latest-javadoc/com/google/inject/throwingproviders/CheckedProvider.html
deleted file mode 100755
index 67891f3..0000000
--- a/latest-javadoc/com/google/inject/throwingproviders/CheckedProvider.html
+++ /dev/null
@@ -1,581 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  CheckedProvider
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>CheckedProvider</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.throwingproviders.CheckedProvider&lt;T&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-
-  <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
-          ><img id="subclasses-indirect-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
-
-  <div id="subclasses-indirect">
-      <div id="subclasses-indirect-list"
-              class="jd-inheritedlinks"
-              
-              >
-          
-            
-              <a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;
-            
-          
-      </div>
-      <div id="subclasses-indirect-summary"
-              style="display: none;"
-              >
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</td>
-              <td class="jd-descrcol" width="100%">
-      <em>
-  This interface is deprecated.
-      use <code><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code> instead.
-</em>&nbsp;</td>
-          </tr>
-  </table>
-      </div>
-  </div>
-</td></tr></table>
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Alternative to the Guice <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that throws
- a checked Exception. Users may not inject <code>T</code> directly.
-
- <p>This interface must be extended to use application-specific exception types.
- Such subinterfaces may not define new methods, but may narrow the exception type.
- <pre>
- public interface RemoteProvider&lt;T&gt; extends CheckedProvider&lt;T&gt; { 
-   T get() throws CustomExceptionOne, CustomExceptionTwo;
- }
- </pre>
-
- <p>When this type is bound using <code><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></code>, the value returned
- or exception thrown by <code><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html#get()">get()</a></code> will be scoped. As a consequence, <code><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html#get()">get()</a></code>
- will invoked at most once within each scope.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html#get()">get</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="get()"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>Exception</td>
-            <td></td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/throwingproviders/CheckedProvides.html b/latest-javadoc/com/google/inject/throwingproviders/CheckedProvides.html
deleted file mode 100755
index b9dc4ee..0000000
--- a/latest-javadoc/com/google/inject/throwingproviders/CheckedProvides.html
+++ /dev/null
@@ -1,576 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  CheckedProvides
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_3.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    abstract
-    @interface
-<h1>CheckedProvides</h1>
-
-
-
-  
-  
-      implements 
-      
-        Annotation 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_3.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.throwingproviders.CheckedProvides</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Annotates methods of a Module to create a <code><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code>
- method binding that can throw exceptions. The method's return type is bound
- to a <code><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code> that can be injected. Guice will pass
- dependencies to the method as parameters. Install @CheckedProvides
- methods by using
- <code><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html#forModule(com.google.inject.Module)">forModule(com.google.inject.Module)</a></code> on the
- module where the methods are declared.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.annotation.Annotation" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.annotation.Annotation-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  java.lang.annotation.Annotation
-
-<div id="inherited-methods-java.lang.annotation.Annotation">
-  <div id="inherited-methods-java.lang.annotation.Annotation-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.annotation.Annotation-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            Class&lt;?&nbsp;extends&nbsp;Annotation&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">annotationType</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/throwingproviders/ThrowingProvider.html b/latest-javadoc/com/google/inject/throwingproviders/ThrowingProvider.html
deleted file mode 100755
index 754e1dd..0000000
--- a/latest-javadoc/com/google/inject/throwingproviders/ThrowingProvider.html
+++ /dev/null
@@ -1,613 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ThrowingProvider
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt;</li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ThrowingProvider</h1>
-
-
-
-  
-  
-      implements 
-      
-        <a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt; 
-      
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.throwingproviders.ThrowingProvider&lt;T,&nbsp;E&nbsp;extends&nbsp;java.lang.Exception&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-<p>
-  <p class="caution">
-      <strong>
-  This interface is deprecated.</strong><br/> use <code><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code> instead.
-
-  </p>
-
-<h2>Class Overview</h2>
-<p>Alternative to the Guice <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that throws
- a checked Exception. Users may not inject <code>T</code> directly.
-
- <p>This interface must be extended to use application-specific exception types.
- Such subinterfaces may not define new methods:
- <pre>
- public interface RemoteProvider&lt;T&gt; extends ThrowingProvider&lt;T, RemoteException&gt; { }
- </pre>
-
- <p>When this type is bound using <code><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></code>, the value returned
- or exception thrown by <code><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html#get()">get()</a></code> will be scoped. As a consequence, <code><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html#get()">get()</a></code>
- will invoked at most once within each scope.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html#get()">get</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.throwingproviders.CheckedProvider" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-com.google.inject.throwingproviders.CheckedProvider-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From interface
-
-  <a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">com.google.inject.throwingproviders.CheckedProvider</a>
-
-<div id="inherited-methods-com.google.inject.throwingproviders.CheckedProvider">
-  <div id="inherited-methods-com.google.inject.throwingproviders.CheckedProvider-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-com.google.inject.throwingproviders.CheckedProvider-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            T</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html#get()">get</a></span>()</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="get()"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        T
-      </span>
-      <span class="sympad">get</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>Exception</td>
-            <td></td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html b/latest-javadoc/com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html
deleted file mode 100755
index 01fde48..0000000
--- a/latest-javadoc/com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html
+++ /dev/null
@@ -1,1018 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ThrowingProviderBinder.SecondaryBinder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>ThrowingProviderBinder.SecondaryBinder</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">com.google.inject.throwingproviders.CheckedProvider</a>&gt;</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html#ThrowingProviderBinder.SecondaryBinder(java.lang.Class<P>, java.lang.reflect.Type)">ThrowingProviderBinder.SecondaryBinder</a></span>(Class&lt;P&gt; interfaceType, Type valueType)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">SecondaryBinder</a>&lt;P&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html#annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)">annotatedWith</a></span>(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">SecondaryBinder</a>&lt;P&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html#annotatedWith(java.lang.annotation.Annotation)">annotatedWith</a></span>(Annotation annotation)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html#to(P)">to</a></span>(P target)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html#to(com.google.inject.Key<? extends P>)">to</a></span>(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;P&gt; targetKey)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html#to(java.lang.Class<? extends P>)">to</a></span>(Class&lt;?&nbsp;extends&nbsp;P&gt; targetType)</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="ThrowingProviderBinder.SecondaryBinder(java.lang.Class<P>, java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">ThrowingProviderBinder.SecondaryBinder</span>
-      <span class="normal">(Class&lt;P&gt; interfaceType, Type valueType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="annotatedWith(java.lang.Class<? extends java.lang.annotation.Annotation>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">SecondaryBinder</a>&lt;P&gt;
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;Annotation&gt; annotationType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="annotatedWith(java.lang.annotation.Annotation)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">SecondaryBinder</a>&lt;P&gt;
-      </span>
-      <span class="sympad">annotatedWith</span>
-      <span class="normal">(Annotation annotation)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(P)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(P target)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(com.google.inject.Key<? extends P>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Key.html">Key</a>&lt;?&nbsp;extends&nbsp;P&gt; targetKey)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="to(java.lang.Class<? extends P>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/binder/ScopedBindingBuilder.html">ScopedBindingBuilder</a>
-      </span>
-      <span class="sympad">to</span>
-      <span class="normal">(Class&lt;?&nbsp;extends&nbsp;P&gt; targetType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/throwingproviders/ThrowingProviderBinder.html b/latest-javadoc/com/google/inject/throwingproviders/ThrowingProviderBinder.html
deleted file mode 100755
index 00b6b0f..0000000
--- a/latest-javadoc/com/google/inject/throwingproviders/ThrowingProviderBinder.html
+++ /dev/null
@@ -1,900 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  ThrowingProviderBinder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt;</li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>ThrowingProviderBinder</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.throwingproviders.ThrowingProviderBinder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p><p>Builds a binding for a <code><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code>.
- 
- <p>You can use a fluent API and custom providers:
- <pre><code>ThrowingProviderBinder.create(binder())
-    .bind(RemoteProvider.class, Customer.class)
-    .to(RemoteCustomerProvider.class)
-    .in(RequestScope.class);
- </code></pre>
- or, you can use throwing provider methods:
- <pre><code>class MyModule extends AbstractModule {
-   configure() {
-     ThrowingProviderBinder.install(this, binder());
-   }
-   
-   @CheckedProvides(RemoteProvider.class)
-   @RequestScope
-   Customer provideCustomer(FlakyCustomerCreator creator) throws RemoteException {
-     return creator.getCustomerOrThrow();
-   }
- }
- </code></pre></p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_2.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        class</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</td>
-      <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            &lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;
-            <a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">SecondaryBinder</a>&lt;P&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html#bind(java.lang.Class<P>, java.lang.reflect.Type)">bind</a></span>(Class&lt;P&gt; interfaceType, Type valueType)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html#create(com.google.inject.Binder)">create</a></span>(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/Module.html">Module</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html#forModule(com.google.inject.Module)">forModule</a></span>(<a href="../../../../com/google/inject/Module.html">Module</a> module)</nobr>
-        
-        <div class="jd-descrdiv">Returns a module that installs @<code><a href="../../../../com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></code> methods.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="bind(java.lang.Class<P>, java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        <a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">SecondaryBinder</a>&lt;P&gt;
-      </span>
-      <span class="sympad">bind</span>
-      <span class="normal">(Class&lt;P&gt; interfaceType, Type valueType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="create(com.google.inject.Binder)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a>
-      </span>
-      <span class="sympad">create</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Binder.html">Binder</a> binder)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-<A NAME="forModule(com.google.inject.Module)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-      <span class="sympad">forModule</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Module.html">Module</a> module)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a module that installs @<code><a href="../../../../com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></code> methods.</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/throwingproviders/package-descr.html b/latest-javadoc/com/google/inject/throwingproviders/package-descr.html
deleted file mode 100755
index 5b0b1ae..0000000
--- a/latest-javadoc/com/google/inject/throwingproviders/package-descr.html
+++ /dev/null
@@ -1,303 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.throwingproviders Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.throwingproviders</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<div class="jd-descr">
-<p>Extension for injecting objects that may throw at provision time; this extension requires <code>guice-throwingproviders-3.0.jar</code>.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/throwingproviders/package-summary.html b/latest-javadoc/com/google/inject/throwingproviders/package-summary.html
deleted file mode 100755
index 5e1875d..0000000
--- a/latest-javadoc/com/google/inject/throwingproviders/package-summary.html
+++ /dev/null
@@ -1,363 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.throwingproviders
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt;</li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</li>
-      </ul>
-    </li>
-              
-    <li><h2>Annotations</h2>
-      <ul>
-        <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/throwingproviders/CheckedProvides.html">CheckedProvides</a></li>
-      </ul>
-    </li>
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.throwingproviders</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-
-
-  <div class="jd-descr">
-  <p>Extension for injecting objects that may throw at provision time; this extension requires <code>guice-throwingproviders-3.0.jar</code>.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_3.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&lt;T&gt;</td>
-              <td class="jd-descrcol" width="100%">Alternative to the Guice <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that throws
- a checked Exception.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/throwingproviders/ThrowingProvider.html">ThrowingProvider</a>&lt;T,&nbsp;E&nbsp;extends&nbsp;Exception&gt;</td>
-              <td class="jd-descrcol" width="100%">
-      <em>
-  This interface is deprecated.
-      use <code><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code> instead.
-</em>&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a></td>
-              <td class="jd-descrcol" width="100%"><p>Builds a binding for a <code><a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>&lt;P&nbsp;extends&nbsp;<a href="../../../../com/google/inject/throwingproviders/CheckedProvider.html">CheckedProvider</a>&gt;</td>
-              <td class="jd-descrcol" width="100%">&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/tools/jmx/ManagedBindingMBean.html b/latest-javadoc/com/google/inject/tools/jmx/ManagedBindingMBean.html
deleted file mode 100755
index 5a51c17..0000000
--- a/latest-javadoc/com/google/inject/tools/jmx/ManagedBindingMBean.html
+++ /dev/null
@@ -1,605 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  ManagedBindingMBean
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../../com/google/inject/tools/jmx/ManagedBindingMBean.html">ManagedBindingMBean</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../../com/google/inject/tools/jmx/Manager.html">Manager</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    interface
-<h1>ManagedBindingMBean</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.tools.jmx.ManagedBindingMBean</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>JMX interface to bindings.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/tools/jmx/ManagedBindingMBean.html#getKey()">getKey</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the binding key.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/tools/jmx/ManagedBindingMBean.html#getProvider()">getProvider</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the provider to which this binding is bound.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/tools/jmx/ManagedBindingMBean.html#getSource()">getSource</a></span>()</nobr>
-        
-        <div class="jd-descrdiv">Gets the source of this binding.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="getKey()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getKey</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the binding key.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getProvider()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getProvider</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the provider to which this binding is bound.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="getSource()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        String
-      </span>
-      <span class="sympad">getSource</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Gets the source of this binding.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/tools/jmx/Manager.html b/latest-javadoc/com/google/inject/tools/jmx/Manager.html
deleted file mode 100755
index 14703f3..0000000
--- a/latest-javadoc/com/google/inject/tools/jmx/Manager.html
+++ /dev/null
@@ -1,936 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  Manager
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_1.0"><a href="../../../../../com/google/inject/tools/jmx/ManagedBindingMBean.html">ManagedBindingMBean</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_1.0"><a href="../../../../../com/google/inject/tools/jmx/Manager.html">Manager</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-  <a href="#pubctors">Ctors</a>
-  
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-     
-    
-    class
-<h1>Manager</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.tools.jmx.Manager</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Provides a JMX interface to Guice.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/tools/jmx/Manager.html#Manager()">Manager</a></span>()</nobr>
-        
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/tools/jmx/Manager.html#main(java.lang.String[])">main</a></span>(String[] args)</nobr>
-        
-        <div class="jd-descrdiv">Run with no arguments for usage instructions.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/tools/jmx/Manager.html#manage(java.lang.String, com.google.inject.Injector)">manage</a></span>(String domain, <a href="../../../../../com/google/inject/Injector.html">Injector</a> injector)</nobr>
-        
-        <div class="jd-descrdiv">Registers all the bindings of an Injector with the platform MBean server.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../../com/google/inject/tools/jmx/Manager.html#manage(javax.management.MBeanServer, java.lang.String, com.google.inject.Injector)">manage</a></span>(MBeanServer server, String domain, <a href="../../../../../com/google/inject/Injector.html">Injector</a> injector)</nobr>
-        
-        <div class="jd-descrdiv">Registers all the bindings of an Injector with the given MBean server.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="Manager()"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">Manager</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="main(java.lang.String[])"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">main</span>
-      <span class="normal">(String[] args)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Run with no arguments for usage instructions.
-</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Throws</h5>
-      <table class="jd-tagtable">  
-        <tr>
-            <th>Exception</td>
-            <td></td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="manage(java.lang.String, com.google.inject.Injector)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">manage</span>
-      <span class="normal">(String domain, <a href="../../../../../com/google/inject/Injector.html">Injector</a> injector)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Registers all the bindings of an Injector with the platform MBean server.
- Consider using the name of your root <code><a href="../../../../../com/google/inject/Module.html">Module</a></code> class as the domain.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="manage(javax.management.MBeanServer, java.lang.String, com.google.inject.Injector)"></A>
-
-<div class="jd-details api apilevel-Guice_1.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        void
-      </span>
-      <span class="sympad">manage</span>
-      <span class="normal">(MBeanServer server, String domain, <a href="../../../../../com/google/inject/Injector.html">Injector</a> injector)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Registers all the bindings of an Injector with the given MBean server.
- Consider using the name of your root <code><a href="../../../../../com/google/inject/Module.html">Module</a></code> class as the domain.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/tools/jmx/package-descr.html b/latest-javadoc/com/google/inject/tools/jmx/package-descr.html
deleted file mode 100755
index ad72aea..0000000
--- a/latest-javadoc/com/google/inject/tools/jmx/package-descr.html
+++ /dev/null
@@ -1,296 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  com.google.inject.tools.jmx Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../../com/google/inject/tools/jmx/ManagedBindingMBean.html">ManagedBindingMBean</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../../com/google/inject/tools/jmx/Manager.html">Manager</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.tools.jmx</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-<div class="jd-descr">
-<p>JMX integration; this extension requires <code>guice-jmx-3.0.jar</code>.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/tools/jmx/package-summary.html b/latest-javadoc/com/google/inject/tools/jmx/package-summary.html
deleted file mode 100755
index 1d0498e..0000000
--- a/latest-javadoc/com/google/inject/tools/jmx/package-summary.html
+++ /dev/null
@@ -1,343 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.ico" />
-<title>
-
-  com.google.inject.tools.jmx
-
-
-| Guice
-
-</title>
-<link href="../../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../../", "../../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_1.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="selected api apilevel-Guice_1.0">
-  <a href="../../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../../com/google/inject/tools/jmx/ManagedBindingMBean.html">ManagedBindingMBean</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_1.0"><a href="../../../../../com/google/inject/tools/jmx/Manager.html">Manager</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../../guide/appendix/api-levels.html#levelGuice_1.0">API Level Guice_1.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.tools.jmx</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_1.0">
-
-
-  <div class="jd-descr">
-  <p>JMX integration; this extension requires <code>guice-jmx-3.0.jar</code>.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/tools/jmx/ManagedBindingMBean.html">ManagedBindingMBean</a></td>
-              <td class="jd-descrcol" width="100%">JMX interface to bindings.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_1.0" >
-              <td class="jd-linkcol"><a href="../../../../../com/google/inject/tools/jmx/Manager.html">Manager</a></td>
-              <td class="jd-descrcol" width="100%">Provides a JMX interface to Guice.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/util/Modules.OverriddenModuleBuilder.html b/latest-javadoc/com/google/inject/util/Modules.OverriddenModuleBuilder.html
deleted file mode 100755
index 6799ae8..0000000
--- a/latest-javadoc/com/google/inject/util/Modules.OverriddenModuleBuilder.html
+++ /dev/null
@@ -1,556 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Modules.OverriddenModuleBuilder
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.html">Modules</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Providers.html">Providers</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Types.html">Types</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-
-<div class="sum-details-links">
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-    static 
-     
-    
-    interface
-<h1>Modules.OverriddenModuleBuilder</h1>
-
-
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.util.Modules.OverriddenModuleBuilder</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>See the EDSL example at <code><a href="../../../../com/google/inject/util/Modules.html#override(com.google.inject.Module...)">override()</a></code>.
-</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Module.html">Module</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html#with(com.google.inject.Module...)">with</a></span>(<a href="../../../../com/google/inject/Module.html">Module...</a> overrides)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL example at <code><a href="../../../../com/google/inject/util/Modules.html#override(com.google.inject.Module...)">override()</a></code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            abstract
-            
-            
-            
-            
-            <a href="../../../../com/google/inject/Module.html">Module</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html#with(java.lang.Iterable<? extends com.google.inject.Module>)">with</a></span>(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; overrides)</nobr>
-        
-        <div class="jd-descrdiv">See the EDSL example at <code><a href="../../../../com/google/inject/util/Modules.html#override(com.google.inject.Module...)">override()</a></code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="with(com.google.inject.Module...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-      <span class="sympad">with</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Module.html">Module...</a> overrides)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL example at <code><a href="../../../../com/google/inject/util/Modules.html#override(com.google.inject.Module...)">override()</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="with(java.lang.Iterable<? extends com.google.inject.Module>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-        abstract 
-         
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-      <span class="sympad">with</span>
-      <span class="normal">(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; overrides)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>See the EDSL example at <code><a href="../../../../com/google/inject/util/Modules.html#override(com.google.inject.Module...)">override()</a></code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/util/Modules.html b/latest-javadoc/com/google/inject/util/Modules.html
deleted file mode 100755
index 485e246..0000000
--- a/latest-javadoc/com/google/inject/util/Modules.html
+++ /dev/null
@@ -1,1034 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Modules
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.html">Modules</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Providers.html">Providers</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Types.html">Types</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-  <a href="#nestedclasses">Nested Classes</a>
-  
-
-
-
-
-
-  &#124; <a href="#constants">Constants</a>
-  
-
-
-
-
-
-
-
-  &#124; <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>Modules</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.util.Modules</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Static utility methods for creating and working with instances of <code><a href="../../../../com/google/inject/Module.html">Module</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-  
-    <tr class="alt-color api apilevel-Guice_2.0" >
-      <td class="jd-typecol"><nobr>
-        
-         
-         
-        
-        interface</nobr></td>
-      <td class="jd-linkcol"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></td>
-      <td class="jd-descrcol" width="100%">See the EDSL example at <code><a href="../../../../com/google/inject/util/Modules.html#override(com.google.inject.Module...)">override()</a></code>.&nbsp;</td>
-    </tr>
-    
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-
-    
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><a href="../../../../com/google/inject/Module.html">Module</a></td>
-        <td class="jd-linkcol"><a href="../../../../com/google/inject/util/Modules.html#EMPTY_MODULE">EMPTY_MODULE</a></td>
-        <td class="jd-descrcol" width="100%"></td>
-    </tr>
-    
-    
-
-</table>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/Module.html">Module</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Modules.html#combine(com.google.inject.Module...)">combine</a></span>(<a href="../../../../com/google/inject/Module.html">Module...</a> modules)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new module that installs all of <code>modules</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/Module.html">Module</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Modules.html#combine(java.lang.Iterable<? extends com.google.inject.Module>)">combine</a></span>(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; modules)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new module that installs all of <code>modules</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Modules.html#override(com.google.inject.Module...)">override</a></span>(<a href="../../../../com/google/inject/Module.html">Module...</a> modules)</nobr>
-        
-        <div class="jd-descrdiv">Returns a builder that creates a module that overlays override modules over the given
- modules.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            <a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Modules.html#override(java.lang.Iterable<? extends com.google.inject.Module>)">override</a></span>(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; modules)</nobr>
-        
-        <div class="jd-descrdiv">Returns a builder that creates a module that overlays override modules over the given
- modules.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Constants</h2>
-
-
-
-
-<A NAME="EMPTY_MODULE"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-        EMPTY_MODULE
-    </h4>
-      <div class="api-level">
-        
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-    </div>
-</div>
-
-
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="combine(com.google.inject.Module...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-      <span class="sympad">combine</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Module.html">Module...</a> modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new module that installs all of <code>modules</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="combine(java.lang.Iterable<? extends com.google.inject.Module>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Module.html">Module</a>
-      </span>
-      <span class="sympad">combine</span>
-      <span class="normal">(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new module that installs all of <code>modules</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="override(com.google.inject.Module...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a>
-      </span>
-      <span class="sympad">override</span>
-      <span class="normal">(<a href="../../../../com/google/inject/Module.html">Module...</a> modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a builder that creates a module that overlays override modules over the given
- modules. If a key is bound in both sets of modules, only the binding from the override modules
- is kept. If a single <code><a href="../../../../com/google/inject/PrivateModule.html">PrivateModule</a></code> is supplied or all elements are from
- a single <code><a href="../../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></code>, then this will overwrite the private bindings.
- Otherwise, private bindings will not be overwritten unless they are exposed. 
- This can be used to replace the bindings of a production module with test bindings:
- <pre>
- Module functionalTestModule
-     = Modules.override(new ProductionModule()).with(new TestModule());
- </pre>
-
- <p>Prefer to write smaller modules that can be reused and tested without overrides.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>modules</td>
-          <td>the modules whose bindings are open to be overridden
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="override(java.lang.Iterable<? extends com.google.inject.Module>)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a>
-      </span>
-      <span class="sympad">override</span>
-      <span class="normal">(Iterable&lt;?&nbsp;extends&nbsp;<a href="../../../../com/google/inject/Module.html">Module</a>&gt; modules)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a builder that creates a module that overlays override modules over the given
- modules. If a key is bound in both sets of modules, only the binding from the override modules
- is kept. If a single <code><a href="../../../../com/google/inject/PrivateModule.html">PrivateModule</a></code> is supplied or all elements are from
- a single <code><a href="../../../../com/google/inject/PrivateBinder.html">PrivateBinder</a></code>, then this will overwrite the private bindings.
- Otherwise, private bindings will not be overwritten unless they are exposed. 
- This can be used to replace the bindings of a production module with test bindings:
- <pre>
- Module functionalTestModule
-     = Modules.override(getProductionModules()).with(getTestModules());
- </pre>
-
- <p>Prefer to write smaller modules that can be reused and tested without overrides.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>modules</td>
-          <td>the modules whose bindings are open to be overridden
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/util/Providers.html b/latest-javadoc/com/google/inject/util/Providers.html
deleted file mode 100755
index b7d0100..0000000
--- a/latest-javadoc/com/google/inject/util/Providers.html
+++ /dev/null
@@ -1,823 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Providers
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.html">Modules</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Providers.html">Providers</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Types.html">Types</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>Providers</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.util.Providers</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Static utility methods for creating and working with instances of
- <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code>.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Providers.html#guicify(javax.inject.Provider<T>)">guicify</a></span>(Provider&lt;T&gt; provider)</nobr>
-        
-        <div class="jd-descrdiv">Returns a Guice-friendly <code>com.google.inject.Provider</code> for the given
- JSR-330 <code>javax.inject.Provider</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            &lt;T&gt;
-            <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Providers.html#of(T)">of</a></span>(T instance)</nobr>
-        
-        <div class="jd-descrdiv">Returns a provider which always provides <code>instance</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="guicify(javax.inject.Provider<T>)"></A>
-
-<div class="jd-details api apilevel-Guice_3.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">guicify</span>
-      <span class="normal">(Provider&lt;T&gt; provider)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a Guice-friendly <code>com.google.inject.Provider</code> for the given
- JSR-330 <code>javax.inject.Provider</code>. The converse method is unnecessary,
- since Guice providers directly implement the JSR-330 interface.</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="of(T)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        <a href="../../../../com/google/inject/Provider.html">Provider</a>&lt;T&gt;
-      </span>
-      <span class="sympad">of</span>
-      <span class="normal">(T instance)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a provider which always provides <code>instance</code>.  This should not
- be necessary to use in your application, but is helpful for several types
- of unit tests.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>instance</td>
-          <td>the instance that should always be provided.  This is also
-     permitted to be null, to enable aggressive testing, although in real
-     life a Guice-supplied Provider will never return null.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/util/Types.html b/latest-javadoc/com/google/inject/util/Types.html
deleted file mode 100755
index 3c68196..0000000
--- a/latest-javadoc/com/google/inject/util/Types.html
+++ /dev/null
@@ -1,1218 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  Types
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.html">Modules</a></li>
-          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Providers.html">Providers</a></li>
-          <li class="selected api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Types.html">Types</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-
-
-
-  
-   
-  
-  
-  
-  
-
-
-<div class="sum-details-links">
-
-Summary:
-
-
-
-
-
-
-
-
-
-
-
-  <a href="#pubmethods">Methods</a>
-  
-
-
-
-  &#124; <a href="#inhmethods">Inherited Methods</a>
-
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-
-</div><!-- end sum-details-links -->
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div><!-- end api-info-block -->
-
-
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
-    public
-     
-    final 
-    
-    class
-<h1>Types</h1>
-
-
-
-  
-    extends Object<br/>
-  
-  
-  
-
-  
-  
-  
-
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<table class="jd-inheritance-table">
-
-
-    <tr>
-         	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
-    </tr>
-    
-
-    <tr>
-        
-            <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
-         	
-        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.util.Types</td>
-    </tr>
-    
-
-</table>
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p>Static methods for working with types.</p>
-
-
-
-
-
-</div><!-- jd-descr -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="jd-descr">
-
-
-<h2>Summary</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            GenericArrayType</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Types.html#arrayOf(java.lang.reflect.Type)">arrayOf</a></span>(Type componentType)</nobr>
-        
-        <div class="jd-descrdiv">Returns an array type whose elements are all instances of
- <code>componentType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            ParameterizedType</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Types.html#listOf(java.lang.reflect.Type)">listOf</a></span>(Type elementType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a type modelling a List whose elements are of type
- <code>elementType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            ParameterizedType</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Types.html#mapOf(java.lang.reflect.Type, java.lang.reflect.Type)">mapOf</a></span>(Type keyType, Type valueType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a type modelling a Map whose keys are of type
- <code>keyType</code> and whose values are of type <code>valueType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            ParameterizedType</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Types.html#newParameterizedType(java.lang.reflect.Type, java.lang.reflect.Type...)">newParameterizedType</a></span>(Type rawType, Type... typeArguments)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new parameterized type, applying <code>typeArguments</code> to
- <code>rawType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            ParameterizedType</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Types.html#newParameterizedTypeWithOwner(java.lang.reflect.Type, java.lang.reflect.Type, java.lang.reflect.Type...)">newParameterizedTypeWithOwner</a></span>(Type ownerType, Type rawType, Type... typeArguments)</nobr>
-        
-        <div class="jd-descrdiv">Returns a new parameterized type, applying <code>typeArguments</code> to
- <code>rawType</code> and enclosed by <code>ownerType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            ParameterizedType</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Types.html#providerOf(java.lang.reflect.Type)">providerOf</a></span>(Type providedType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a type modelling a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that provides elements of type
- <code>elementType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            ParameterizedType</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Types.html#setOf(java.lang.reflect.Type)">setOf</a></span>(Type elementType)</nobr>
-        
-        <div class="jd-descrdiv">Returns a type modelling a Set whose elements are of type
- <code>elementType</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            WildcardType</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Types.html#subtypeOf(java.lang.reflect.Type)">subtypeOf</a></span>(Type bound)</nobr>
-        
-        <div class="jd-descrdiv">Returns a type that represents an unknown type that extends <code>bound</code>.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            static
-            
-            WildcardType</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="../../../../com/google/inject/util/Types.html#supertypeOf(java.lang.reflect.Type)">supertypeOf</a></span>(Type bound)</nobr>
-        
-        <div class="jd-descrdiv">Returns a type that represents an unknown supertype of <code>bound</code>.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
-  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
-  <div style="clear:left;">Inherited Methods</div></th></tr>
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
-          ><img id="inherited-methods-java.lang.Object-trigger"
-          src="../../../../../javadoc/assets/images/triangle-closed.png"
-          class="jd-expando-trigger-img" /></a>
-From class
-
-  java.lang.Object
-
-<div id="inherited-methods-java.lang.Object">
-  <div id="inherited-methods-java.lang.Object-list"
-        class="jd-inheritedlinks">
-  </div>
-  <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
-    <table class="jd-sumtable-expando">
-    
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            Object</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clone</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            boolean</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">finalize</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            Class&lt;?&gt;</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getClass</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">hashCode</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notify</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">notifyAll</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">toString</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0)</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            final
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-        
-  </td></tr>
-
-
-</table>
-  </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-
-
-
-
-
-
-
-<!-- XML Attributes -->
-
-
-<!-- Enum Values -->
-
-
-<!-- Constants -->
-
-
-<!-- Fields -->
-
-
-<!-- Public ctors -->
-
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-
-<h2>Public Methods</h2>
-
-
-
-<A NAME="arrayOf(java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        GenericArrayType
-      </span>
-      <span class="sympad">arrayOf</span>
-      <span class="normal">(Type componentType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns an array type whose elements are all instances of
- <code>componentType</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a java.io.Serializable serializable generic array type.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="listOf(java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        ParameterizedType
-      </span>
-      <span class="sympad">listOf</span>
-      <span class="normal">(Type elementType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a type modelling a List whose elements are of type
- <code>elementType</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a java.io.Serializable serializable parameterized type.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="mapOf(java.lang.reflect.Type, java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        ParameterizedType
-      </span>
-      <span class="sympad">mapOf</span>
-      <span class="normal">(Type keyType, Type valueType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a type modelling a Map whose keys are of type
- <code>keyType</code> and whose values are of type <code>valueType</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a java.io.Serializable serializable parameterized type.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="newParameterizedType(java.lang.reflect.Type, java.lang.reflect.Type...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        ParameterizedType
-      </span>
-      <span class="sympad">newParameterizedType</span>
-      <span class="normal">(Type rawType, Type... typeArguments)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new parameterized type, applying <code>typeArguments</code> to
- <code>rawType</code>. The returned type does not have an owner type.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a java.io.Serializable serializable parameterized type.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="newParameterizedTypeWithOwner(java.lang.reflect.Type, java.lang.reflect.Type, java.lang.reflect.Type...)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        ParameterizedType
-      </span>
-      <span class="sympad">newParameterizedTypeWithOwner</span>
-      <span class="normal">(Type ownerType, Type rawType, Type... typeArguments)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a new parameterized type, applying <code>typeArguments</code> to
- <code>rawType</code> and enclosed by <code>ownerType</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a java.io.Serializable serializable parameterized type.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="providerOf(java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        ParameterizedType
-      </span>
-      <span class="sympad">providerOf</span>
-      <span class="normal">(Type providedType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a type modelling a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that provides elements of type
- <code>elementType</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a java.io.Serializable serializable parameterized type.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="setOf(java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        ParameterizedType
-      </span>
-      <span class="sympad">setOf</span>
-      <span class="normal">(Type elementType)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a type modelling a Set whose elements are of type
- <code>elementType</code>.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>a java.io.Serializable serializable parameterized type.
-</li></ul>
-  </div>
-
-    </div>
-</div>
-
-
-<A NAME="subtypeOf(java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        WildcardType
-      </span>
-      <span class="sympad">subtypeOf</span>
-      <span class="normal">(Type bound)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a type that represents an unknown type that extends <code>bound</code>.
- For example, if <code>bound</code> is <code>CharSequence.class</code>, this returns
- <code>? extends CharSequence</code>. If <code>bound</code> is <code>Object.class</code>,
- this returns <code>?</code>, which is shorthand for <code>? extends Object</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="supertypeOf(java.lang.reflect.Type)"></A>
-
-<div class="jd-details api apilevel-Guice_2.0"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-         
-         
-         
-        WildcardType
-      </span>
-      <span class="sympad">supertypeOf</span>
-      <span class="normal">(Type bound)</span>
-    </h4>
-      <div class="api-level">
-        <div>
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-</div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Returns a type that represents an unknown supertype of <code>bound</code>. For
- example, if <code>bound</code> is <code>String.class</code>, this returns <code>?
- super String</code>.
-</p></div>
-
-    </div>
-</div>
-
-
-
-
-
-<!-- ========= METHOD DETAIL ======== -->
-
-
-
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/util/package-descr.html b/latest-javadoc/com/google/inject/util/package-descr.html
deleted file mode 100755
index 572dc53..0000000
--- a/latest-javadoc/com/google/inject/util/package-descr.html
+++ /dev/null
@@ -1,298 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.util Details
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.html">Modules</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Providers.html">Providers</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Types.html">Types</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.util</b></h1>
-  <div class="jd-nav">
-      <a class="jd-navlink" href="package-summary.html">Classes</a> | Description
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-<div class="jd-descr">
-<p>Helper methods for working with Guice.
-</p>
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/com/google/inject/util/package-summary.html b/latest-javadoc/com/google/inject/util/package-summary.html
deleted file mode 100755
index 2193464..0000000
--- a/latest-javadoc/com/google/inject/util/package-summary.html
+++ /dev/null
@@ -1,354 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
-<title>
-
-  com.google.inject.util
-
-
-| Guice
-
-</title>
-<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("../../../../", "../../../../../javadoc/assets/");
-</script>
-<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="Guice_2.0">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, '../../../../')"
-                      onkeyup="return search_changed(event, false, '../../../../')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="../../../../packages.html"  >Package Index</a> | 
-                <a href="../../../../classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="selected api apilevel-Guice_2.0">
-  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-            <ul>
-              
-    <li><h2>Interfaces</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></li>
-      </ul>
-    </li>
-              
-    <li><h2>Classes</h2>
-      <ul>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Modules.html">Modules</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Providers.html">Providers</a></li>
-        <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/util/Types.html">Types</a></li>
-      </ul>
-    </li>
-              
-              
-              
-              
-            </ul><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="../../../../packages.html"  >Package Index</a> | 
-            <a href="../../../../classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("../../../../");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="api-info-block">
-<div class="api-level">
-  
-
-  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_2.0">API Level Guice_2.0</a>
-
-
-  
-  
-
-</div>
-</div>
-
-<div id="jd-header">
-  package
-  <h1>com.google.inject.util</h1>
-  <div class="jd-nav">
-      
-        Classes | <a class="jd-navlink" href="package-descr.html">Description</a>
-      
-  </div>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-Guice_2.0">
-
-
-  <div class="jd-descr">
-  <p>Helper methods for working with Guice.</p>
-    
-  <p><span class="jd-more"><a href="package-descr.html">more...</a></span></p>
-  
-  </div>
-
-
-
-
-
-  
-    <h3>Interfaces</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/util/Modules.OverriddenModuleBuilder.html">Modules.OverriddenModuleBuilder</a></td>
-              <td class="jd-descrcol" width="100%">See the EDSL example at <code><a href="../../../../com/google/inject/util/Modules.html#override(com.google.inject.Module...)">override()</a></code>.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-    <h3>Classes</h3>
-    <div class="jd-sumtable">
-    
-  <table class="jd-sumtable-expando">
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/util/Modules.html">Modules</a></td>
-              <td class="jd-descrcol" width="100%">Static utility methods for creating and working with instances of <code><a href="../../../../com/google/inject/Module.html">Module</a></code>.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/util/Providers.html">Providers</a></td>
-              <td class="jd-descrcol" width="100%">Static utility methods for creating and working with instances of
- <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code>.&nbsp;</td>
-          </tr>
-        <tr class="alt-color api apilevel-Guice_2.0" >
-              <td class="jd-linkcol"><a href="../../../../com/google/inject/util/Types.html">Types</a></td>
-              <td class="jd-descrcol" width="100%">Static methods for working with types.&nbsp;</td>
-          </tr>
-  </table>
-    </div>
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
diff --git a/latest-javadoc/current.xml b/latest-javadoc/current.xml
deleted file mode 100755
index 32daf95..0000000
--- a/latest-javadoc/current.xml
+++ /dev/null
@@ -1,10827 +0,0 @@
-<api>
-<package name="com.google.inject"
->
-<class name="AbstractModule"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Module">
-</implements>
-<constructor name="AbstractModule"
- type="com.google.inject.AbstractModule"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="addError"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="message" type="com.google.inject.spi.Message">
-</parameter>
-</method>
-<method name="addError"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="message" type="java.lang.String">
-</parameter>
-<parameter name="arguments" type="java.lang.Object...">
-</parameter>
-</method>
-<method name="addError"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="t" type="java.lang.Throwable">
-</parameter>
-</method>
-<method name="bind"
- return="com.google.inject.binder.LinkedBindingBuilder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="bind"
- return="com.google.inject.binder.AnnotatedBindingBuilder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="bind"
- return="com.google.inject.binder.AnnotatedBindingBuilder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="clazz" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="bindConstant"
- return="com.google.inject.binder.AnnotatedConstantBindingBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="bindInterceptor"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="classMatcher" type="com.google.inject.matcher.Matcher&lt;? super java.lang.Class&lt;?&gt;&gt;">
-</parameter>
-<parameter name="methodMatcher" type="com.google.inject.matcher.Matcher&lt;? super java.lang.reflect.Method&gt;">
-</parameter>
-<parameter name="interceptors" type="org.aopalliance.intercept.MethodInterceptor...">
-</parameter>
-</method>
-<method name="bindListener"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="typeMatcher" type="com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;">
-</parameter>
-<parameter name="listener" type="com.google.inject.spi.TypeListener">
-</parameter>
-</method>
-<method name="bindScope"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="scopeAnnotation" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-<parameter name="scope" type="com.google.inject.Scope">
-</parameter>
-</method>
-<method name="binder"
- return="com.google.inject.Binder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="configure"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="configure"
- return="void"
- abstract="false"
- native="false"
- synchronized="true"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="builder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="convertToTypes"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="typeMatcher" type="com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;">
-</parameter>
-<parameter name="converter" type="com.google.inject.spi.TypeConverter">
-</parameter>
-</method>
-<method name="currentStage"
- return="com.google.inject.Stage"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="install"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="module" type="com.google.inject.Module">
-</parameter>
-</method>
-<method name="requestInjection"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="instance" type="java.lang.Object">
-</parameter>
-</method>
-<method name="requestStaticInjection"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="types" type="java.lang.Class&lt;?&gt;...">
-</parameter>
-</method>
-<method name="requireBinding"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="requireBinding"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-</class>
-<interface name="Binder"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="addError"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="com.google.inject.spi.Message">
-</parameter>
-</method>
-<method name="addError"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="java.lang.String">
-</parameter>
-<parameter name="arguments" type="java.lang.Object...">
-</parameter>
-</method>
-<method name="addError"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="t" type="java.lang.Throwable">
-</parameter>
-</method>
-<method name="bind"
- return="com.google.inject.binder.LinkedBindingBuilder&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="bind"
- return="com.google.inject.binder.AnnotatedBindingBuilder&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="bind"
- return="com.google.inject.binder.AnnotatedBindingBuilder&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="bindConstant"
- return="com.google.inject.binder.AnnotatedConstantBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="bindInterceptor"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="classMatcher" type="com.google.inject.matcher.Matcher&lt;? super java.lang.Class&lt;?&gt;&gt;">
-</parameter>
-<parameter name="methodMatcher" type="com.google.inject.matcher.Matcher&lt;? super java.lang.reflect.Method&gt;">
-</parameter>
-<parameter name="interceptors" type="org.aopalliance.intercept.MethodInterceptor...">
-</parameter>
-</method>
-<method name="bindListener"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeMatcher" type="com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;">
-</parameter>
-<parameter name="listener" type="com.google.inject.spi.TypeListener">
-</parameter>
-</method>
-<method name="bindScope"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-<parameter name="scope" type="com.google.inject.Scope">
-</parameter>
-</method>
-<method name="convertToTypes"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeMatcher" type="com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;">
-</parameter>
-<parameter name="converter" type="com.google.inject.spi.TypeConverter">
-</parameter>
-</method>
-<method name="currentStage"
- return="com.google.inject.Stage"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="disableCircularProxies"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="install"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="module" type="com.google.inject.Module">
-</parameter>
-</method>
-<method name="newPrivateBinder"
- return="com.google.inject.PrivateBinder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="requestInjection"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="instance" type="T">
-</parameter>
-</method>
-<method name="requestInjection"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instance" type="java.lang.Object">
-</parameter>
-</method>
-<method name="requestStaticInjection"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="types" type="java.lang.Class&lt;?&gt;...">
-</parameter>
-</method>
-<method name="requireExplicitBindings"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="skipSources"
- return="com.google.inject.Binder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="classesToSkip" type="java.lang.Class...">
-</parameter>
-</method>
-<method name="withSource"
- return="com.google.inject.Binder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-</method>
-</interface>
-<interface name="Binding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<method name="acceptScopingVisitor"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.BindingScopingVisitor&lt;V&gt;">
-</parameter>
-</method>
-<method name="acceptTargetVisitor"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.BindingTargetVisitor&lt;? super T, V&gt;">
-</parameter>
-</method>
-<method name="getKey"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="BindingAnnotation"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="ConfigurationException"
- extends="java.lang.RuntimeException"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="ConfigurationException"
- type="com.google.inject.ConfigurationException"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="messages" type="java.lang.Iterable&lt;com.google.inject.spi.Message&gt;">
-</parameter>
-</constructor>
-<method name="getErrorMessages"
- return="java.util.Collection&lt;com.google.inject.spi.Message&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getPartialValue"
- return="E"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="withPartialValue"
- return="com.google.inject.ConfigurationException"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="partialValue" type="java.lang.Object">
-</parameter>
-</method>
-</class>
-<class name="CreationException"
- extends="java.lang.RuntimeException"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="CreationException"
- type="com.google.inject.CreationException"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="messages" type="java.util.Collection&lt;com.google.inject.spi.Message&gt;">
-</parameter>
-</constructor>
-<method name="getErrorMessages"
- return="java.util.Collection&lt;com.google.inject.spi.Message&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="Exposed"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="Guice"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="createInjector"
- return="com.google.inject.Injector"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="com.google.inject.Module...">
-</parameter>
-</method>
-<method name="createInjector"
- return="com.google.inject.Injector"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="stage" type="com.google.inject.Stage">
-</parameter>
-<parameter name="modules" type="com.google.inject.Module...">
-</parameter>
-</method>
-<method name="createInjector"
- return="com.google.inject.Injector"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="stage" type="com.google.inject.Stage">
-</parameter>
-<parameter name="modules" type="java.lang.Iterable&lt;? extends com.google.inject.Module&gt;">
-</parameter>
-</method>
-<method name="createInjector"
- return="com.google.inject.Injector"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="java.lang.Iterable&lt;? extends com.google.inject.Module&gt;">
-</parameter>
-</method>
-</class>
-<class name="ImplementedBy"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="Inject"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<interface name="Injector"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="createChildInjector"
- return="com.google.inject.Injector"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="com.google.inject.Module...">
-</parameter>
-</method>
-<method name="createChildInjector"
- return="com.google.inject.Injector"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="java.lang.Iterable&lt;? extends com.google.inject.Module&gt;">
-</parameter>
-</method>
-<method name="findBindingsByType"
- return="java.util.List&lt;com.google.inject.Binding&lt;T&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="getAllBindings"
- return="java.util.Map&lt;com.google.inject.Key&lt;?&gt;, com.google.inject.Binding&lt;?&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getBinding"
- return="com.google.inject.Binding&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="getBinding"
- return="com.google.inject.Binding&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="getBindings"
- return="java.util.Map&lt;com.google.inject.Key&lt;?&gt;, com.google.inject.Binding&lt;?&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getExistingBinding"
- return="com.google.inject.Binding&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="getInstance"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="getInstance"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="getParent"
- return="com.google.inject.Injector"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="getScopeBindings"
- return="java.util.Map&lt;java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;, com.google.inject.Scope&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTypeConverterBindings"
- return="java.util.Set&lt;com.google.inject.spi.TypeConverterBinding&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="injectMembers"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instance" type="java.lang.Object">
-</parameter>
-</method>
-</interface>
-<class name="Key"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="Key"
- type="com.google.inject.Key"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</constructor>
-<constructor name="Key"
- type="com.google.inject.Key"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</constructor>
-<constructor name="Key"
- type="com.google.inject.Key"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</constructor>
-<method name="equals"
- return="boolean"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="o" type="java.lang.Object">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.Key&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.Key&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.reflect.Type">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.Key&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.reflect.Type">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-<method name="getAnnotation"
- return="java.lang.annotation.Annotation"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getAnnotationType"
- return="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTypeLiteral"
- return="com.google.inject.TypeLiteral&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="hasAttributes"
- return="boolean"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="hashCode"
- return="int"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="ofType"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="ofType"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="ofType"
- return="com.google.inject.Key&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="toString"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="withoutAttributes"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="MembersInjector"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="injectMembers"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instance" type="T">
-</parameter>
-</method>
-</interface>
-<interface name="Module"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="configure"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-</interface>
-<class name="OutOfScopeException"
- extends="java.lang.RuntimeException"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="OutOfScopeException"
- type="com.google.inject.OutOfScopeException"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="java.lang.String">
-</parameter>
-</constructor>
-<constructor name="OutOfScopeException"
- type="com.google.inject.OutOfScopeException"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="java.lang.String">
-</parameter>
-<parameter name="cause" type="java.lang.Throwable">
-</parameter>
-</constructor>
-<constructor name="OutOfScopeException"
- type="com.google.inject.OutOfScopeException"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="cause" type="java.lang.Throwable">
-</parameter>
-</constructor>
-</class>
-<interface name="PrivateBinder"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binder">
-</implements>
-<method name="expose"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="expose"
- return="com.google.inject.binder.AnnotatedElementBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;?&gt;">
-</parameter>
-</method>
-<method name="expose"
- return="com.google.inject.binder.AnnotatedElementBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-<method name="skipSources"
- return="com.google.inject.PrivateBinder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="classesToSkip" type="java.lang.Class...">
-</parameter>
-</method>
-<method name="withSource"
- return="com.google.inject.PrivateBinder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-</method>
-</interface>
-<class name="PrivateModule"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Module">
-</implements>
-<constructor name="PrivateModule"
- type="com.google.inject.PrivateModule"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="addError"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="message" type="com.google.inject.spi.Message">
-</parameter>
-</method>
-<method name="addError"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="message" type="java.lang.String">
-</parameter>
-<parameter name="arguments" type="java.lang.Object...">
-</parameter>
-</method>
-<method name="addError"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="t" type="java.lang.Throwable">
-</parameter>
-</method>
-<method name="bind"
- return="com.google.inject.binder.LinkedBindingBuilder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="bind"
- return="com.google.inject.binder.AnnotatedBindingBuilder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="bind"
- return="com.google.inject.binder.AnnotatedBindingBuilder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="clazz" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="bindConstant"
- return="com.google.inject.binder.AnnotatedConstantBindingBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="bindInterceptor"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="classMatcher" type="com.google.inject.matcher.Matcher&lt;? super java.lang.Class&lt;?&gt;&gt;">
-</parameter>
-<parameter name="methodMatcher" type="com.google.inject.matcher.Matcher&lt;? super java.lang.reflect.Method&gt;">
-</parameter>
-<parameter name="interceptors" type="org.aopalliance.intercept.MethodInterceptor...">
-</parameter>
-</method>
-<method name="bindListener"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="typeMatcher" type="com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;">
-</parameter>
-<parameter name="listener" type="com.google.inject.spi.TypeListener">
-</parameter>
-</method>
-<method name="bindScope"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="scopeAnnotation" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-<parameter name="scope" type="com.google.inject.Scope">
-</parameter>
-</method>
-<method name="binder"
- return="com.google.inject.PrivateBinder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="configure"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="configure"
- return="void"
- abstract="false"
- native="false"
- synchronized="true"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="convertToTypes"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="typeMatcher" type="com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;">
-</parameter>
-<parameter name="converter" type="com.google.inject.spi.TypeConverter">
-</parameter>
-</method>
-<method name="currentStage"
- return="com.google.inject.Stage"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="expose"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="expose"
- return="com.google.inject.binder.AnnotatedElementBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;?&gt;">
-</parameter>
-</method>
-<method name="expose"
- return="com.google.inject.binder.AnnotatedElementBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="install"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="module" type="com.google.inject.Module">
-</parameter>
-</method>
-<method name="requestInjection"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="instance" type="java.lang.Object">
-</parameter>
-</method>
-<method name="requestStaticInjection"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="types" type="java.lang.Class&lt;?&gt;...">
-</parameter>
-</method>
-<method name="requireBinding"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="requireBinding"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="type" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-</class>
-<class name="ProvidedBy"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<interface name="Provider"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="javax.inject.Provider">
-</implements>
-<method name="get"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="Provides"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="ProvisionException"
- extends="java.lang.RuntimeException"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="ProvisionException"
- type="com.google.inject.ProvisionException"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="messages" type="java.lang.Iterable&lt;com.google.inject.spi.Message&gt;">
-</parameter>
-</constructor>
-<constructor name="ProvisionException"
- type="com.google.inject.ProvisionException"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="java.lang.String">
-</parameter>
-</constructor>
-<constructor name="ProvisionException"
- type="com.google.inject.ProvisionException"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="java.lang.String">
-</parameter>
-<parameter name="cause" type="java.lang.Throwable">
-</parameter>
-</constructor>
-<method name="getErrorMessages"
- return="java.util.Collection&lt;com.google.inject.spi.Message&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="Scope"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="scope"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-<parameter name="unscoped" type="com.google.inject.Provider&lt;T&gt;">
-</parameter>
-</method>
-<method name="toString"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="ScopeAnnotation"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="Scopes"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="isSingleton"
- return="boolean"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.Binding&lt;?&gt;">
-</parameter>
-</method>
-<field name="NO_SCOPE"
- type="com.google.inject.Scope"
- transient="false"
- volatile="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-<field name="SINGLETON"
- type="com.google.inject.Scope"
- transient="false"
- volatile="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-</class>
-<class name="Singleton"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="Stage"
- extends="java.lang.Enum"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="valueOf"
- return="com.google.inject.Stage"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-<method name="values"
- return="com.google.inject.Stage[]"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="TypeLiteral"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="TypeLiteral"
- type="com.google.inject.TypeLiteral"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</constructor>
-<method name="equals"
- return="boolean"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="o" type="java.lang.Object">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.TypeLiteral&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.TypeLiteral&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="getExceptionTypes"
- return="java.util.List&lt;com.google.inject.TypeLiteral&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="methodOrConstructor" type="java.lang.reflect.Member">
-</parameter>
-</method>
-<method name="getFieldType"
- return="com.google.inject.TypeLiteral&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="field" type="java.lang.reflect.Field">
-</parameter>
-</method>
-<method name="getParameterTypes"
- return="java.util.List&lt;com.google.inject.TypeLiteral&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="methodOrConstructor" type="java.lang.reflect.Member">
-</parameter>
-</method>
-<method name="getRawType"
- return="java.lang.Class&lt;? super T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getReturnType"
- return="com.google.inject.TypeLiteral&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="method" type="java.lang.reflect.Method">
-</parameter>
-</method>
-<method name="getSupertype"
- return="com.google.inject.TypeLiteral&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="supertype" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-<method name="getType"
- return="java.lang.reflect.Type"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="hashCode"
- return="int"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="toString"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-</package>
-<package name="com.google.inject.assistedinject"
->
-<class name="Assisted"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="AssistedInject"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<interface name="AssistedInjectBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="getAssistedMethods"
- return="java.util.Collection&lt;com.google.inject.assistedinject.AssistedMethod&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getKey"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="AssistedInjectTargetVisitor"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.BindingTargetVisitor">
-</implements>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="assistedInjectBinding" type="com.google.inject.assistedinject.AssistedInjectBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-</interface>
-<interface name="AssistedMethod"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="getDependencies"
- return="java.util.Set&lt;com.google.inject.spi.Dependency&lt;?&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getFactoryMethod"
- return="java.lang.reflect.Method"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getImplementationConstructor"
- return="java.lang.reflect.Constructor&lt;?&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getImplementationType"
- return="com.google.inject.TypeLiteral&lt;?&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="FactoryModuleBuilder"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="FactoryModuleBuilder"
- type="com.google.inject.assistedinject.FactoryModuleBuilder"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="build"
- return="com.google.inject.Module"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="factoryInterface" type="com.google.inject.Key&lt;F&gt;">
-</parameter>
-</method>
-<method name="build"
- return="com.google.inject.Module"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="factoryInterface" type="com.google.inject.TypeLiteral&lt;F&gt;">
-</parameter>
-</method>
-<method name="build"
- return="com.google.inject.Module"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="factoryInterface" type="java.lang.Class&lt;F&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-<parameter name="target" type="com.google.inject.TypeLiteral&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-<parameter name="target" type="java.lang.Class&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="target" type="com.google.inject.TypeLiteral&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="target" type="java.lang.Class&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-<parameter name="target" type="com.google.inject.TypeLiteral&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-<parameter name="target" type="java.lang.Class&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-<parameter name="target" type="com.google.inject.TypeLiteral&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-<parameter name="target" type="java.lang.Class&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="target" type="com.google.inject.TypeLiteral&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="target" type="java.lang.Class&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-<parameter name="target" type="com.google.inject.TypeLiteral&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-<parameter name="target" type="java.lang.Class&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-<parameter name="target" type="com.google.inject.TypeLiteral&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="implement"
- return="com.google.inject.assistedinject.FactoryModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-<parameter name="target" type="java.lang.Class&lt;? extends T&gt;">
-</parameter>
-</method>
-</class>
-<class name="FactoryProvider"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.HasDependencies">
-</implements>
-<implements name="com.google.inject.Provider">
-</implements>
-<method name="get"
- return="F"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getDependencies"
- return="java.util.Set&lt;com.google.inject.spi.Dependency&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="newFactory"
- return="com.google.inject.Provider&lt;F&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="factoryType" type="com.google.inject.TypeLiteral&lt;F&gt;">
-</parameter>
-<parameter name="implementationType" type="com.google.inject.TypeLiteral&lt;?&gt;">
-</parameter>
-</method>
-<method name="newFactory"
- return="com.google.inject.Provider&lt;F&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="factoryType" type="java.lang.Class&lt;F&gt;">
-</parameter>
-<parameter name="implementationType" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.binder"
->
-<interface name="AnnotatedBindingBuilder"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.binder.LinkedBindingBuilder">
-</implements>
-<method name="annotatedWith"
- return="com.google.inject.binder.LinkedBindingBuilder&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="annotatedWith"
- return="com.google.inject.binder.LinkedBindingBuilder&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-</interface>
-<interface name="AnnotatedConstantBindingBuilder"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="annotatedWith"
- return="com.google.inject.binder.ConstantBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="annotatedWith"
- return="com.google.inject.binder.ConstantBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-</interface>
-<interface name="AnnotatedElementBuilder"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="annotatedWith"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="annotatedWith"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-</interface>
-<interface name="ConstantBindingBuilder"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="E">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="boolean">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="byte">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="char">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="double">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="float">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="int">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="java.lang.String">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="long">
-</parameter>
-</method>
-<method name="to"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="short">
-</parameter>
-</method>
-</interface>
-<interface name="LinkedBindingBuilder"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.binder.ScopedBindingBuilder">
-</implements>
-<method name="to"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="targetKey" type="com.google.inject.Key&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="to"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="implementation" type="com.google.inject.TypeLiteral&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="to"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="implementation" type="java.lang.Class&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="toConstructor"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="constructor" type="java.lang.reflect.Constructor&lt;S&gt;">
-</parameter>
-</method>
-<method name="toConstructor"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="constructor" type="java.lang.reflect.Constructor&lt;S&gt;">
-</parameter>
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;? extends S&gt;">
-</parameter>
-</method>
-<method name="toInstance"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instance" type="T">
-</parameter>
-</method>
-<method name="toProvider"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="providerKey" type="com.google.inject.Key&lt;? extends javax.inject.Provider&lt;? extends T&gt;&gt;">
-</parameter>
-</method>
-<method name="toProvider"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="provider" type="com.google.inject.Provider&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="toProvider"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="providerType" type="com.google.inject.TypeLiteral&lt;? extends javax.inject.Provider&lt;? extends T&gt;&gt;">
-</parameter>
-</method>
-<method name="toProvider"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="providerType" type="java.lang.Class&lt;? extends javax.inject.Provider&lt;? extends T&gt;&gt;">
-</parameter>
-</method>
-</interface>
-<interface name="ScopedBindingBuilder"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="asEagerSingleton"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="in"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="scope" type="com.google.inject.Scope">
-</parameter>
-</method>
-<method name="in"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="scopeAnnotation" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-</interface>
-</package>
-<package name="com.google.inject.grapher"
->
-<interface name="BindingEdge"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="setType"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.grapher.BindingEdge.Type">
-</parameter>
-</method>
-</interface>
-<interface name="BindingEdge.Factory"
- abstract="true"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="newBindingEdge"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="fromId" type="K">
-</parameter>
-<parameter name="toId" type="K">
-</parameter>
-</method>
-</interface>
-<class name="BindingEdge.Type"
- extends="java.lang.Enum"
- abstract="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="valueOf"
- return="com.google.inject.grapher.BindingEdge.Type"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-<method name="values"
- return="com.google.inject.grapher.BindingEdge.Type[]"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="DependencyEdge"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</interface>
-<interface name="DependencyEdge.Factory"
- abstract="true"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="newDependencyEdge"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="fromId" type="K">
-</parameter>
-<parameter name="fromPoint" type="com.google.inject.spi.InjectionPoint">
-</parameter>
-<parameter name="toId" type="K">
-</parameter>
-</method>
-</interface>
-<class name="GrapherModule"
- extends="com.google.inject.AbstractModule"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="GrapherModule"
- type="com.google.inject.grapher.GrapherModule"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="configure"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-</class>
-<class name="GraphingVisitor"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.BindingTargetVisitor">
-</implements>
-<constructor name="GraphingVisitor"
- type="com.google.inject.grapher.GraphingVisitor"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="idFactory" type="com.google.inject.grapher.NodeIdFactory&lt;K&gt;">
-</parameter>
-<parameter name="interfaceNodeFactory" type="com.google.inject.grapher.InterfaceNode.Factory&lt;K, N&gt;">
-</parameter>
-<parameter name="implementationNodeFactory" type="com.google.inject.grapher.ImplementationNode.Factory&lt;K, M&gt;">
-</parameter>
-<parameter name="bindingEdgeFactory" type="com.google.inject.grapher.BindingEdge.Factory&lt;K, B&gt;">
-</parameter>
-<parameter name="dependencyEdgeFactory" type="com.google.inject.grapher.DependencyEdge.Factory&lt;K, D&gt;">
-</parameter>
-<parameter name="nodeAliasFactory" type="com.google.inject.grapher.NodeAliasFactory&lt;K&gt;">
-</parameter>
-</constructor>
-<method name="getClassNodeId"
- return="K"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="binding" type="com.google.inject.Binding&lt;?&gt;">
-</parameter>
-</method>
-<method name="getInstanceNodeId"
- return="K"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="binding" type="com.google.inject.Binding&lt;?&gt;">
-</parameter>
-</method>
-<method name="newBindingEdge"
- return="B"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="nodeId" type="K">
-</parameter>
-<parameter name="toId" type="K">
-</parameter>
-<parameter name="type" type="com.google.inject.grapher.BindingEdge.Type">
-</parameter>
-</method>
-<method name="newClassImplementationNode"
- return="M"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="binding" type="com.google.inject.Binding&lt;?&gt;">
-</parameter>
-<parameter name="constructorInjectionPoint" type="com.google.inject.spi.InjectionPoint">
-</parameter>
-<parameter name="memberInjectionPoints" type="java.util.Collection&lt;com.google.inject.spi.InjectionPoint&gt;">
-</parameter>
-</method>
-<method name="newDependencyEdge"
- return="D"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="nodeId" type="K">
-</parameter>
-<parameter name="injectionPoint" type="com.google.inject.spi.InjectionPoint">
-</parameter>
-<parameter name="dependency" type="com.google.inject.spi.Dependency&lt;?&gt;">
-</parameter>
-</method>
-<method name="newDependencyEdges"
- return="java.util.Collection&lt;D&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="nodeId" type="K">
-</parameter>
-<parameter name="node" type="M">
-</parameter>
-<parameter name="dependencies" type="java.util.Collection&lt;com.google.inject.spi.Dependency&lt;?&gt;&gt;">
-</parameter>
-</method>
-<method name="newInstanceImplementationNode"
- return="M"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="binding" type="com.google.inject.Binding&lt;?&gt;">
-</parameter>
-<parameter name="instance" type="java.lang.Object">
-</parameter>
-</method>
-<method name="newInterfaceNode"
- return="N"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="binding" type="com.google.inject.Binding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.lang.Void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ConstructorBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.lang.Void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ConvertedConstantBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.lang.Void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ExposedBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.lang.Void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.InstanceBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.lang.Void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.LinkedKeyBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.lang.Void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ProviderBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.lang.Void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ProviderInstanceBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.lang.Void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ProviderKeyBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.lang.Void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.UntargettedBinding&lt;?&gt;">
-</parameter>
-</method>
-</class>
-<interface name="ImplementationNode"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="addMember"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="member" type="java.lang.reflect.Member">
-</parameter>
-</method>
-<method name="setClassKey"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="setInstance"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instance" type="java.lang.Object">
-</parameter>
-</method>
-<method name="setSource"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-</method>
-</interface>
-<interface name="ImplementationNode.Factory"
- abstract="true"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="newImplementationNode"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="nodeId" type="K">
-</parameter>
-</method>
-</interface>
-<class name="InjectorGrapher"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="InjectorGrapher"
- type="com.google.inject.grapher.InjectorGrapher"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="keyVisitor" type="com.google.inject.spi.BindingTargetVisitor&lt;java.lang.Object, java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;&gt;">
-</parameter>
-<parameter name="graphingVisitor" type="com.google.inject.spi.BindingTargetVisitor&lt;java.lang.Object, java.lang.Void&gt;">
-</parameter>
-<parameter name="renderer" type="com.google.inject.grapher.Renderer">
-</parameter>
-</constructor>
-<method name="graph"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<exception name="IOException" type="java.io.IOException">
-</exception>
-</method>
-<method name="of"
- return="com.google.inject.grapher.InjectorGrapher"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="injector" type="com.google.inject.Injector">
-</parameter>
-</method>
-<method name="rootedAt"
- return="com.google.inject.grapher.InjectorGrapher"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="classes" type="java.lang.Class&lt;?&gt;...">
-</parameter>
-</method>
-</class>
-<interface name="InterfaceNode"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="setKey"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="setSource"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-</method>
-</interface>
-<interface name="InterfaceNode.Factory"
- abstract="true"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="newInterfaceNode"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="nodeId" type="K">
-</parameter>
-</method>
-</interface>
-<interface name="NameFactory"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="getAnnotationName"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="getClassName"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="getInstanceName"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instance" type="java.lang.Object">
-</parameter>
-</method>
-<method name="getMemberName"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="member" type="java.lang.reflect.Member">
-</parameter>
-</method>
-<method name="getSourceName"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-</method>
-</interface>
-<interface name="NodeAliasFactory"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="newAlias"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="fromId" type="K">
-</parameter>
-<parameter name="toId" type="K">
-</parameter>
-</method>
-</interface>
-<interface name="NodeIdFactory"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="getClassNodeId"
- return="K"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="getInstanceNodeId"
- return="K"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-</interface>
-<interface name="Renderer"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="render"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<exception name="IOException" type="java.io.IOException">
-</exception>
-</method>
-</interface>
-<class name="ShortNameFactory"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.grapher.NameFactory">
-</implements>
-<constructor name="ShortNameFactory"
- type="com.google.inject.grapher.ShortNameFactory"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="getAnnotationName"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="getClassName"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="getFileString"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="stackTraceElement" type="java.lang.StackTraceElement">
-</parameter>
-</method>
-<method name="getInstanceName"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instance" type="java.lang.Object">
-</parameter>
-</method>
-<method name="getMemberName"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="member" type="java.lang.reflect.Member">
-</parameter>
-</method>
-<method name="getMethodString"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="method" type="java.lang.reflect.Method">
-</parameter>
-</method>
-<method name="getSourceName"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-</method>
-</class>
-<class name="StringNodeIdFactory"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.grapher.NodeIdFactory">
-</implements>
-<constructor name="StringNodeIdFactory"
- type="com.google.inject.grapher.StringNodeIdFactory"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="getClassNodeId"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="getInstanceNodeId"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-</class>
-<class name="TransitiveDependencyVisitor"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.BindingTargetVisitor">
-</implements>
-<constructor name="TransitiveDependencyVisitor"
- type="com.google.inject.grapher.TransitiveDependencyVisitor"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="visit"
- return="java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ConstructorBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ConvertedConstantBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ExposedBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.InstanceBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.LinkedKeyBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ProviderBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ProviderInstanceBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ProviderKeyBinding&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="java.util.Collection&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.UntargettedBinding&lt;?&gt;">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.grapher.graphviz"
->
-<class name="ArrowType"
- extends="java.lang.Enum"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="valueOf"
- return="com.google.inject.grapher.graphviz.ArrowType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-<method name="values"
- return="com.google.inject.grapher.graphviz.ArrowType[]"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="BindingEdgeFactory"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.grapher.BindingEdge.Factory">
-</implements>
-<constructor name="BindingEdgeFactory"
- type="com.google.inject.grapher.graphviz.BindingEdgeFactory"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="renderer" type="com.google.inject.grapher.graphviz.GraphvizRenderer">
-</parameter>
-</constructor>
-<method name="newAdaptor"
- return="com.google.inject.grapher.graphviz.BindingEdgeFactory.GraphvizEdgeAdaptor"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="edge" type="com.google.inject.grapher.graphviz.GraphvizEdge">
-</parameter>
-</method>
-<method name="newBindingEdge"
- return="com.google.inject.grapher.BindingEdge&lt;java.lang.String&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="fromId" type="java.lang.String">
-</parameter>
-<parameter name="toId" type="java.lang.String">
-</parameter>
-</method>
-</class>
-<class name="BindingEdgeFactory.GraphvizEdgeAdaptor"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<implements name="com.google.inject.grapher.BindingEdge">
-</implements>
-<constructor name="BindingEdgeFactory.GraphvizEdgeAdaptor"
- type="com.google.inject.grapher.graphviz.BindingEdgeFactory.GraphvizEdgeAdaptor"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="edge" type="com.google.inject.grapher.graphviz.GraphvizEdge">
-</parameter>
-</constructor>
-<method name="setType"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.grapher.BindingEdge.Type">
-</parameter>
-</method>
-<field name="edge"
- type="com.google.inject.grapher.graphviz.GraphvizEdge"
- transient="false"
- volatile="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</field>
-</class>
-<class name="CompassPoint"
- extends="java.lang.Enum"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="valueOf"
- return="com.google.inject.grapher.graphviz.CompassPoint"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-<method name="values"
- return="com.google.inject.grapher.graphviz.CompassPoint[]"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="DependencyEdgeFactory"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.grapher.DependencyEdge.Factory">
-</implements>
-<constructor name="DependencyEdgeFactory"
- type="com.google.inject.grapher.graphviz.DependencyEdgeFactory"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="renderer" type="com.google.inject.grapher.graphviz.GraphvizRenderer">
-</parameter>
-<parameter name="portIdFactory" type="com.google.inject.grapher.graphviz.PortIdFactory">
-</parameter>
-</constructor>
-<method name="newAdaptor"
- return="com.google.inject.grapher.graphviz.DependencyEdgeFactory.GraphvizEdgeAdaptor"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="edge" type="com.google.inject.grapher.graphviz.GraphvizEdge">
-</parameter>
-</method>
-<method name="newDependencyEdge"
- return="com.google.inject.grapher.DependencyEdge&lt;java.lang.String&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="fromId" type="java.lang.String">
-</parameter>
-<parameter name="fromPoint" type="com.google.inject.spi.InjectionPoint">
-</parameter>
-<parameter name="toId" type="java.lang.String">
-</parameter>
-</method>
-</class>
-<class name="DependencyEdgeFactory.GraphvizEdgeAdaptor"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<implements name="com.google.inject.grapher.DependencyEdge">
-</implements>
-<constructor name="DependencyEdgeFactory.GraphvizEdgeAdaptor"
- type="com.google.inject.grapher.graphviz.DependencyEdgeFactory.GraphvizEdgeAdaptor"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="edge" type="com.google.inject.grapher.graphviz.GraphvizEdge">
-</parameter>
-</constructor>
-<field name="edge"
- type="com.google.inject.grapher.graphviz.GraphvizEdge"
- transient="false"
- volatile="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</field>
-</class>
-<class name="EdgeStyle"
- extends="java.lang.Enum"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="valueOf"
- return="com.google.inject.grapher.graphviz.EdgeStyle"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-<method name="values"
- return="com.google.inject.grapher.graphviz.EdgeStyle[]"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="GraphvizEdge"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="GraphvizEdge"
- type="com.google.inject.grapher.graphviz.GraphvizEdge"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="tailNodeId" type="java.lang.String">
-</parameter>
-<parameter name="headNodeId" type="java.lang.String">
-</parameter>
-</constructor>
-<method name="getArrowHead"
- return="java.util.List&lt;com.google.inject.grapher.graphviz.ArrowType&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getArrowTail"
- return="java.util.List&lt;com.google.inject.grapher.graphviz.ArrowType&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getHeadCompassPoint"
- return="com.google.inject.grapher.graphviz.CompassPoint"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getHeadNodeId"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getHeadPortId"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getStyle"
- return="com.google.inject.grapher.graphviz.EdgeStyle"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTailCompassPoint"
- return="com.google.inject.grapher.graphviz.CompassPoint"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTailNodeId"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTailPortId"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="setArrowHead"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="arrowHead" type="java.util.List&lt;com.google.inject.grapher.graphviz.ArrowType&gt;">
-</parameter>
-</method>
-<method name="setArrowTail"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="arrowTail" type="java.util.List&lt;com.google.inject.grapher.graphviz.ArrowType&gt;">
-</parameter>
-</method>
-<method name="setHeadCompassPoint"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="headCompassPoint" type="com.google.inject.grapher.graphviz.CompassPoint">
-</parameter>
-</method>
-<method name="setHeadPortId"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="headPortId" type="java.lang.String">
-</parameter>
-</method>
-<method name="setStyle"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="style" type="com.google.inject.grapher.graphviz.EdgeStyle">
-</parameter>
-</method>
-<method name="setTailCompassPoint"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="tailCompassPoint" type="com.google.inject.grapher.graphviz.CompassPoint">
-</parameter>
-</method>
-<method name="setTailPortId"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="tailPortId" type="java.lang.String">
-</parameter>
-</method>
-</class>
-<class name="GraphvizModule"
- extends="com.google.inject.AbstractModule"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="GraphvizModule"
- type="com.google.inject.grapher.graphviz.GraphvizModule"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="configure"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-</class>
-<class name="GraphvizNode"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="GraphvizNode"
- type="com.google.inject.grapher.graphviz.GraphvizNode"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="nodeId" type="java.lang.String">
-</parameter>
-</constructor>
-<method name="addField"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="portId" type="java.lang.String">
-</parameter>
-<parameter name="title" type="java.lang.String">
-</parameter>
-</method>
-<method name="addSubtitle"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="position" type="int">
-</parameter>
-<parameter name="subtitle" type="java.lang.String">
-</parameter>
-</method>
-<method name="getFields"
- return="java.util.Map&lt;java.lang.String, java.lang.String&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getHeaderBackgroundColor"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getHeaderTextColor"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getNodeId"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getShape"
- return="com.google.inject.grapher.graphviz.NodeShape"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getStyle"
- return="com.google.inject.grapher.graphviz.NodeStyle"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSubtitles"
- return="java.util.List&lt;java.lang.String&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTitle"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="setHeaderBackgroundColor"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="headerBackgroundColor" type="java.lang.String">
-</parameter>
-</method>
-<method name="setHeaderTextColor"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="headerTextColor" type="java.lang.String">
-</parameter>
-</method>
-<method name="setShape"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="shape" type="com.google.inject.grapher.graphviz.NodeShape">
-</parameter>
-</method>
-<method name="setStyle"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="style" type="com.google.inject.grapher.graphviz.NodeStyle">
-</parameter>
-</method>
-<method name="setTitle"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="title" type="java.lang.String">
-</parameter>
-</method>
-</class>
-<class name="GraphvizRenderer"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.grapher.NodeAliasFactory">
-</implements>
-<implements name="com.google.inject.grapher.Renderer">
-</implements>
-<constructor name="GraphvizRenderer"
- type="com.google.inject.grapher.graphviz.GraphvizRenderer"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="addEdge"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="edge" type="com.google.inject.grapher.graphviz.GraphvizEdge">
-</parameter>
-</method>
-<method name="addNode"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="node" type="com.google.inject.grapher.graphviz.GraphvizNode">
-</parameter>
-</method>
-<method name="finish"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="getArrowString"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="arrows" type="java.util.List&lt;com.google.inject.grapher.graphviz.ArrowType&gt;">
-</parameter>
-</method>
-<method name="getEdgeAttributes"
- return="java.util.Map&lt;java.lang.String, java.lang.String&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="edge" type="com.google.inject.grapher.graphviz.GraphvizEdge">
-</parameter>
-</method>
-<method name="getEdgeEndPoint"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="nodeId" type="java.lang.String">
-</parameter>
-<parameter name="portId" type="java.lang.String">
-</parameter>
-<parameter name="compassPoint" type="com.google.inject.grapher.graphviz.CompassPoint">
-</parameter>
-</method>
-<method name="getGraphAttributes"
- return="java.util.Map&lt;java.lang.String, java.lang.String&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="getNodeAttributes"
- return="java.util.Map&lt;java.lang.String, java.lang.String&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="node" type="com.google.inject.grapher.graphviz.GraphvizNode">
-</parameter>
-</method>
-<method name="getNodeLabel"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="node" type="com.google.inject.grapher.graphviz.GraphvizNode">
-</parameter>
-</method>
-<method name="htmlEscape"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="str" type="java.lang.String">
-</parameter>
-</method>
-<method name="newAlias"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="fromId" type="java.lang.String">
-</parameter>
-<parameter name="toId" type="java.lang.String">
-</parameter>
-</method>
-<method name="render"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="renderEdge"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="edge" type="com.google.inject.grapher.graphviz.GraphvizEdge">
-</parameter>
-</method>
-<method name="renderNode"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="node" type="com.google.inject.grapher.graphviz.GraphvizNode">
-</parameter>
-</method>
-<method name="resolveAlias"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="id" type="java.lang.String">
-</parameter>
-</method>
-<method name="setOut"
- return="com.google.inject.grapher.graphviz.GraphvizRenderer"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="out" type="java.io.PrintWriter">
-</parameter>
-</method>
-<method name="setRankdir"
- return="com.google.inject.grapher.graphviz.GraphvizRenderer"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="rankdir" type="java.lang.String">
-</parameter>
-</method>
-<method name="start"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-</class>
-<class name="ImplementationNodeFactory"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.grapher.ImplementationNode.Factory">
-</implements>
-<constructor name="ImplementationNodeFactory"
- type="com.google.inject.grapher.graphviz.ImplementationNodeFactory"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="renderer" type="com.google.inject.grapher.graphviz.GraphvizRenderer">
-</parameter>
-<parameter name="nameFactory" type="com.google.inject.grapher.NameFactory">
-</parameter>
-<parameter name="portIdFactory" type="com.google.inject.grapher.graphviz.PortIdFactory">
-</parameter>
-</constructor>
-<method name="newAdaptor"
- return="com.google.inject.grapher.graphviz.ImplementationNodeFactory.GraphvizNodeAdaptor"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="node" type="com.google.inject.grapher.graphviz.GraphvizNode">
-</parameter>
-</method>
-<method name="newImplementationNode"
- return="com.google.inject.grapher.ImplementationNode&lt;java.lang.String&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="nodeId" type="java.lang.String">
-</parameter>
-</method>
-</class>
-<class name="ImplementationNodeFactory.GraphvizNodeAdaptor"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<implements name="com.google.inject.grapher.ImplementationNode">
-</implements>
-<constructor name="ImplementationNodeFactory.GraphvizNodeAdaptor"
- type="com.google.inject.grapher.graphviz.ImplementationNodeFactory.GraphvizNodeAdaptor"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="node" type="com.google.inject.grapher.graphviz.GraphvizNode">
-</parameter>
-</constructor>
-<method name="addMember"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="member" type="java.lang.reflect.Member">
-</parameter>
-</method>
-<method name="setClassKey"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="setInstance"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instance" type="java.lang.Object">
-</parameter>
-</method>
-<method name="setSource"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-</method>
-<field name="node"
- type="com.google.inject.grapher.graphviz.GraphvizNode"
- transient="false"
- volatile="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</field>
-</class>
-<class name="InterfaceNodeFactory"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.grapher.InterfaceNode.Factory">
-</implements>
-<constructor name="InterfaceNodeFactory"
- type="com.google.inject.grapher.graphviz.InterfaceNodeFactory"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="renderer" type="com.google.inject.grapher.graphviz.GraphvizRenderer">
-</parameter>
-<parameter name="nameFactory" type="com.google.inject.grapher.NameFactory">
-</parameter>
-</constructor>
-<method name="newInterfaceNode"
- return="com.google.inject.grapher.InterfaceNode&lt;java.lang.String&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="nodeId" type="java.lang.String">
-</parameter>
-</method>
-</class>
-<class name="InterfaceNodeFactory.GraphvizNodeAdaptor"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<implements name="com.google.inject.grapher.InterfaceNode">
-</implements>
-<constructor name="InterfaceNodeFactory.GraphvizNodeAdaptor"
- type="com.google.inject.grapher.graphviz.InterfaceNodeFactory.GraphvizNodeAdaptor"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="node" type="com.google.inject.grapher.graphviz.GraphvizNode">
-</parameter>
-</constructor>
-<method name="setKey"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="setSource"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-</method>
-<field name="node"
- type="com.google.inject.grapher.graphviz.GraphvizNode"
- transient="false"
- volatile="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</field>
-</class>
-<class name="NodeShape"
- extends="java.lang.Enum"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="valueOf"
- return="com.google.inject.grapher.graphviz.NodeShape"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-<method name="values"
- return="com.google.inject.grapher.graphviz.NodeShape[]"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="NodeStyle"
- extends="java.lang.Enum"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="valueOf"
- return="com.google.inject.grapher.graphviz.NodeStyle"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-<method name="values"
- return="com.google.inject.grapher.graphviz.NodeStyle[]"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="PortIdFactory"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="getPortId"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="member" type="java.lang.reflect.Member">
-</parameter>
-</method>
-</interface>
-<class name="PortIdFactoryImpl"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.grapher.graphviz.PortIdFactory">
-</implements>
-<constructor name="PortIdFactoryImpl"
- type="com.google.inject.grapher.graphviz.PortIdFactoryImpl"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="getPortId"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="member" type="java.lang.reflect.Member">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.jndi"
->
-<class name="JndiIntegration"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="fromJndi"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.matcher"
->
-<class name="AbstractMatcher"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.matcher.Matcher">
-</implements>
-<constructor name="AbstractMatcher"
- type="com.google.inject.matcher.AbstractMatcher"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="and"
- return="com.google.inject.matcher.Matcher&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="other" type="com.google.inject.matcher.Matcher&lt;? super T&gt;">
-</parameter>
-</method>
-<method name="or"
- return="com.google.inject.matcher.Matcher&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="other" type="com.google.inject.matcher.Matcher&lt;? super T&gt;">
-</parameter>
-</method>
-</class>
-<interface name="Matcher"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="and"
- return="com.google.inject.matcher.Matcher&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="other" type="com.google.inject.matcher.Matcher&lt;? super T&gt;">
-</parameter>
-</method>
-<method name="matches"
- return="boolean"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="t" type="T">
-</parameter>
-</method>
-<method name="or"
- return="com.google.inject.matcher.Matcher&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="other" type="com.google.inject.matcher.Matcher&lt;? super T&gt;">
-</parameter>
-</method>
-</interface>
-<class name="Matchers"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="annotatedWith"
- return="com.google.inject.matcher.Matcher&lt;java.lang.reflect.AnnotatedElement&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="annotatedWith"
- return="com.google.inject.matcher.Matcher&lt;java.lang.reflect.AnnotatedElement&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-<method name="any"
- return="com.google.inject.matcher.Matcher&lt;java.lang.Object&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="identicalTo"
- return="com.google.inject.matcher.Matcher&lt;java.lang.Object&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="java.lang.Object">
-</parameter>
-</method>
-<method name="inPackage"
- return="com.google.inject.matcher.Matcher&lt;java.lang.Class&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="targetPackage" type="java.lang.Package">
-</parameter>
-</method>
-<method name="inSubpackage"
- return="com.google.inject.matcher.Matcher&lt;java.lang.Class&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="targetPackageName" type="java.lang.String">
-</parameter>
-</method>
-<method name="not"
- return="com.google.inject.matcher.Matcher&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="p" type="com.google.inject.matcher.Matcher&lt;? super T&gt;">
-</parameter>
-</method>
-<method name="only"
- return="com.google.inject.matcher.Matcher&lt;java.lang.Object&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="java.lang.Object">
-</parameter>
-</method>
-<method name="returns"
- return="com.google.inject.matcher.Matcher&lt;java.lang.reflect.Method&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="returnType" type="com.google.inject.matcher.Matcher&lt;? super java.lang.Class&lt;?&gt;&gt;">
-</parameter>
-</method>
-<method name="subclassesOf"
- return="com.google.inject.matcher.Matcher&lt;java.lang.Class&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="superclass" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.multibindings"
->
-<class name="MapBinder"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="addBinding"
- return="com.google.inject.binder.LinkedBindingBuilder&lt;V&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="K">
-</parameter>
-</method>
-<method name="newMapBinder"
- return="com.google.inject.multibindings.MapBinder&lt;K, V&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="keyType" type="com.google.inject.TypeLiteral&lt;K&gt;">
-</parameter>
-<parameter name="valueType" type="com.google.inject.TypeLiteral&lt;V&gt;">
-</parameter>
-</method>
-<method name="newMapBinder"
- return="com.google.inject.multibindings.MapBinder&lt;K, V&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="keyType" type="com.google.inject.TypeLiteral&lt;K&gt;">
-</parameter>
-<parameter name="valueType" type="com.google.inject.TypeLiteral&lt;V&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="newMapBinder"
- return="com.google.inject.multibindings.MapBinder&lt;K, V&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="keyType" type="com.google.inject.TypeLiteral&lt;K&gt;">
-</parameter>
-<parameter name="valueType" type="com.google.inject.TypeLiteral&lt;V&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-<method name="newMapBinder"
- return="com.google.inject.multibindings.MapBinder&lt;K, V&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="keyType" type="java.lang.Class&lt;K&gt;">
-</parameter>
-<parameter name="valueType" type="java.lang.Class&lt;V&gt;">
-</parameter>
-</method>
-<method name="newMapBinder"
- return="com.google.inject.multibindings.MapBinder&lt;K, V&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="keyType" type="java.lang.Class&lt;K&gt;">
-</parameter>
-<parameter name="valueType" type="java.lang.Class&lt;V&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="newMapBinder"
- return="com.google.inject.multibindings.MapBinder&lt;K, V&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="keyType" type="java.lang.Class&lt;K&gt;">
-</parameter>
-<parameter name="valueType" type="java.lang.Class&lt;V&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-<method name="permitDuplicates"
- return="com.google.inject.multibindings.MapBinder&lt;K, V&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="MapBinderBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="containsElement"
- return="boolean"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="element" type="com.google.inject.spi.Element">
-</parameter>
-</method>
-<method name="getEntries"
- return="java.util.List&lt;java.util.Map.Entry&lt;?, com.google.inject.Binding&lt;?&gt;&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getKeyTypeLiteral"
- return="com.google.inject.TypeLiteral&lt;?&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getMapKey"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getValueTypeLiteral"
- return="com.google.inject.TypeLiteral&lt;?&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="permitsDuplicates"
- return="boolean"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="Multibinder"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="addBinding"
- return="com.google.inject.binder.LinkedBindingBuilder&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="newSetBinder"
- return="com.google.inject.multibindings.Multibinder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="newSetBinder"
- return="com.google.inject.multibindings.Multibinder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="newSetBinder"
- return="com.google.inject.multibindings.Multibinder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-<method name="newSetBinder"
- return="com.google.inject.multibindings.Multibinder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="newSetBinder"
- return="com.google.inject.multibindings.Multibinder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="newSetBinder"
- return="com.google.inject.multibindings.Multibinder&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-<method name="permitDuplicates"
- return="com.google.inject.multibindings.Multibinder&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="MultibinderBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="containsElement"
- return="boolean"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="element" type="com.google.inject.spi.Element">
-</parameter>
-</method>
-<method name="getElementTypeLiteral"
- return="com.google.inject.TypeLiteral&lt;?&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getElements"
- return="java.util.List&lt;com.google.inject.Binding&lt;?&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSetKey"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="permitsDuplicates"
- return="boolean"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="MultibindingsTargetVisitor"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.BindingTargetVisitor">
-</implements>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="mapbinding" type="com.google.inject.multibindings.MapBinderBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="multibinding" type="com.google.inject.multibindings.MultibinderBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-</interface>
-</package>
-<package name="com.google.inject.name"
->
-<class name="Named"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="Names"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="bindProperties"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="properties" type="java.util.Map&lt;java.lang.String, java.lang.String&gt;">
-</parameter>
-</method>
-<method name="bindProperties"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="properties" type="java.util.Properties">
-</parameter>
-</method>
-<method name="named"
- return="com.google.inject.name.Named"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.persist"
->
-<class name="PersistFilter"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="PersistFilter"
- type="com.google.inject.persist.PersistFilter"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="unitOfWork" type="com.google.inject.persist.UnitOfWork">
-</parameter>
-<parameter name="persistService" type="com.google.inject.persist.PersistService">
-</parameter>
-</constructor>
-<method name="destroy"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="doFilter"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servletRequest" type="ServletRequest">
-</parameter>
-<parameter name="servletResponse" type="ServletResponse">
-</parameter>
-<parameter name="filterChain" type="FilterChain">
-</parameter>
-<exception name="IOException" type="java.io.IOException">
-</exception>
-<exception name="ServletException" type="ServletException">
-</exception>
-</method>
-<method name="init"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="filterConfig" type="FilterConfig">
-</parameter>
-<exception name="ServletException" type="ServletException">
-</exception>
-</method>
-</class>
-<class name="PersistModule"
- extends="com.google.inject.AbstractModule"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="PersistModule"
- type="com.google.inject.persist.PersistModule"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="configure"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="configurePersistence"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="getTransactionInterceptor"
- return="org.aopalliance.intercept.MethodInterceptor"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-</class>
-<interface name="PersistService"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="start"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="stop"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="Transactional"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<interface name="UnitOfWork"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="begin"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="end"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-</package>
-<package name="com.google.inject.persist.finder"
->
-<class name="DynamicFinder"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="DynamicFinder"
- type="com.google.inject.persist.finder.DynamicFinder"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="method" type="java.lang.reflect.Method">
-</parameter>
-</constructor>
-<method name="from"
- return="com.google.inject.persist.finder.DynamicFinder"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="method" type="java.lang.reflect.Method">
-</parameter>
-</method>
-<method name="metadata"
- return="com.google.inject.persist.finder.Finder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="Finder"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="FirstResult"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="MaxResults"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-</package>
-<package name="com.google.inject.persist.jpa"
->
-<class name="JpaPersistModule"
- extends="com.google.inject.persist.PersistModule"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="JpaPersistModule"
- type="com.google.inject.persist.jpa.JpaPersistModule"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="jpaUnit" type="java.lang.String">
-</parameter>
-</constructor>
-<method name="addFinder"
- return="com.google.inject.persist.jpa.JpaPersistModule"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="iface" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="configurePersistence"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="getTransactionInterceptor"
- return="org.aopalliance.intercept.MethodInterceptor"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="properties"
- return="com.google.inject.persist.jpa.JpaPersistModule"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="properties" type="java.util.Properties">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.servlet"
->
-<class name="GuiceFilter"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="GuiceFilter"
- type="com.google.inject.servlet.GuiceFilter"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="destroy"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="doFilter"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servletRequest" type="ServletRequest">
-</parameter>
-<parameter name="servletResponse" type="ServletResponse">
-</parameter>
-<parameter name="filterChain" type="FilterChain">
-</parameter>
-<exception name="IOException" type="java.io.IOException">
-</exception>
-<exception name="ServletException" type="ServletException">
-</exception>
-</method>
-<method name="init"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="filterConfig" type="FilterConfig">
-</parameter>
-<exception name="ServletException" type="ServletException">
-</exception>
-</method>
-</class>
-<class name="GuiceServletContextListener"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="GuiceServletContextListener"
- type="com.google.inject.servlet.GuiceServletContextListener"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="contextDestroyed"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servletContextEvent" type="ServletContextEvent">
-</parameter>
-</method>
-<method name="contextInitialized"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servletContextEvent" type="ServletContextEvent">
-</parameter>
-</method>
-<method name="getInjector"
- return="com.google.inject.Injector"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-</class>
-<interface name="InstanceFilterBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.servlet.ServletModuleBinding">
-</implements>
-<method name="getFilterInstance"
- return="Filter"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="InstanceServletBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.servlet.ServletModuleBinding">
-</implements>
-<method name="getServletInstance"
- return="HttpServlet"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="LinkedFilterBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.servlet.ServletModuleBinding">
-</implements>
-<method name="getLinkedKey"
- return="com.google.inject.Key&lt;? extends Filter&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="LinkedServletBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.servlet.ServletModuleBinding">
-</implements>
-<method name="getLinkedKey"
- return="com.google.inject.Key&lt;? extends HttpServlet&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="RequestParameters"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="RequestScoped"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="ServletModule"
- extends="com.google.inject.AbstractModule"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="ServletModule"
- type="com.google.inject.servlet.ServletModule"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="configure"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="configureServlets"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="filter"
- return="com.google.inject.servlet.ServletModule.FilterKeyBindingBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="urlPattern" type="java.lang.String">
-</parameter>
-<parameter name="morePatterns" type="java.lang.String...">
-</parameter>
-</method>
-<method name="filterRegex"
- return="com.google.inject.servlet.ServletModule.FilterKeyBindingBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="regex" type="java.lang.String">
-</parameter>
-<parameter name="regexes" type="java.lang.String...">
-</parameter>
-</method>
-<method name="getServletContext"
- return="ServletContext"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="serve"
- return="com.google.inject.servlet.ServletModule.ServletKeyBindingBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="urlPattern" type="java.lang.String">
-</parameter>
-<parameter name="morePatterns" type="java.lang.String...">
-</parameter>
-</method>
-<method name="serveRegex"
- return="com.google.inject.servlet.ServletModule.ServletKeyBindingBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="regex" type="java.lang.String">
-</parameter>
-<parameter name="regexes" type="java.lang.String...">
-</parameter>
-</method>
-</class>
-<interface name="ServletModule.FilterKeyBindingBuilder"
- abstract="true"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="through"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="filter" type="Filter">
-</parameter>
-</method>
-<method name="through"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="filter" type="Filter">
-</parameter>
-<parameter name="initParams" type="java.util.Map&lt;java.lang.String, java.lang.String&gt;">
-</parameter>
-</method>
-<method name="through"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="filterKey" type="com.google.inject.Key&lt;? extends Filter&gt;">
-</parameter>
-</method>
-<method name="through"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="filterKey" type="com.google.inject.Key&lt;? extends Filter&gt;">
-</parameter>
-<parameter name="initParams" type="java.util.Map&lt;java.lang.String, java.lang.String&gt;">
-</parameter>
-</method>
-<method name="through"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="filterKey" type="java.lang.Class&lt;? extends Filter&gt;">
-</parameter>
-</method>
-<method name="through"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="filterKey" type="java.lang.Class&lt;? extends Filter&gt;">
-</parameter>
-<parameter name="initParams" type="java.util.Map&lt;java.lang.String, java.lang.String&gt;">
-</parameter>
-</method>
-</interface>
-<interface name="ServletModule.ServletKeyBindingBuilder"
- abstract="true"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="with"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servlet" type="HttpServlet">
-</parameter>
-</method>
-<method name="with"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servlet" type="HttpServlet">
-</parameter>
-<parameter name="initParams" type="java.util.Map&lt;java.lang.String, java.lang.String&gt;">
-</parameter>
-</method>
-<method name="with"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servletKey" type="com.google.inject.Key&lt;? extends HttpServlet&gt;">
-</parameter>
-</method>
-<method name="with"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servletKey" type="com.google.inject.Key&lt;? extends HttpServlet&gt;">
-</parameter>
-<parameter name="initParams" type="java.util.Map&lt;java.lang.String, java.lang.String&gt;">
-</parameter>
-</method>
-<method name="with"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servletKey" type="java.lang.Class&lt;? extends HttpServlet&gt;">
-</parameter>
-</method>
-<method name="with"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="servletKey" type="java.lang.Class&lt;? extends HttpServlet&gt;">
-</parameter>
-<parameter name="initParams" type="java.util.Map&lt;java.lang.String, java.lang.String&gt;">
-</parameter>
-</method>
-</interface>
-<interface name="ServletModuleBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="getInitParams"
- return="java.util.Map&lt;java.lang.String, java.lang.String&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getPattern"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getUriPatternType"
- return="com.google.inject.servlet.UriPatternType"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="matchesUri"
- return="boolean"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="uri" type="java.lang.String">
-</parameter>
-</method>
-</interface>
-<interface name="ServletModuleTargetVisitor"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.BindingTargetVisitor">
-</implements>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.servlet.InstanceFilterBinding">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.servlet.InstanceServletBinding">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.servlet.LinkedFilterBinding">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.servlet.LinkedServletBinding">
-</parameter>
-</method>
-</interface>
-<class name="ServletScopes"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="continueRequest"
- return="java.util.concurrent.Callable&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="callable" type="java.util.concurrent.Callable&lt;T&gt;">
-</parameter>
-<parameter name="seedMap" type="java.util.Map&lt;com.google.inject.Key&lt;?&gt;, java.lang.Object&gt;">
-</parameter>
-</method>
-<method name="scopeRequest"
- return="java.util.concurrent.Callable&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="callable" type="java.util.concurrent.Callable&lt;T&gt;">
-</parameter>
-<parameter name="seedMap" type="java.util.Map&lt;com.google.inject.Key&lt;?&gt;, java.lang.Object&gt;">
-</parameter>
-</method>
-<field name="REQUEST"
- type="com.google.inject.Scope"
- transient="false"
- volatile="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-<field name="SESSION"
- type="com.google.inject.Scope"
- transient="false"
- volatile="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-</class>
-<class name="SessionScoped"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<class name="UriPatternType"
- extends="java.lang.Enum"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="valueOf"
- return="com.google.inject.servlet.UriPatternType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-<method name="values"
- return="com.google.inject.servlet.UriPatternType[]"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-</package>
-<package name="com.google.inject.spi"
->
-<interface name="BindingScopingVisitor"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="visitEagerSingleton"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="visitNoScoping"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="visitScope"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="scope" type="com.google.inject.Scope">
-</parameter>
-</method>
-<method name="visitScopeAnnotation"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="scopeAnnotation" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-</interface>
-<interface name="BindingTargetVisitor"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ConstructorBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ConvertedConstantBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ExposedBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.InstanceBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.LinkedKeyBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ProviderBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ProviderInstanceBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ProviderKeyBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.UntargettedBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-</interface>
-<interface name="ConstructorBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binding">
-</implements>
-<implements name="com.google.inject.spi.HasDependencies">
-</implements>
-<method name="getConstructor"
- return="com.google.inject.spi.InjectionPoint"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getInjectableMembers"
- return="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getMethodInterceptors"
- return="java.util.Map&lt;java.lang.reflect.Method, java.util.List&lt;org.aopalliance.intercept.MethodInterceptor&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="ConvertedConstantBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binding">
-</implements>
-<implements name="com.google.inject.spi.HasDependencies">
-</implements>
-<method name="getDependencies"
- return="java.util.Set&lt;com.google.inject.spi.Dependency&lt;?&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSourceKey"
- return="com.google.inject.Key&lt;java.lang.String&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTypeConverterBinding"
- return="com.google.inject.spi.TypeConverterBinding"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getValue"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="DefaultBindingScopingVisitor"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.BindingScopingVisitor">
-</implements>
-<constructor name="DefaultBindingScopingVisitor"
- type="com.google.inject.spi.DefaultBindingScopingVisitor"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="visitEagerSingleton"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="visitNoScoping"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="visitOther"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-</method>
-<method name="visitScope"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="scope" type="com.google.inject.Scope">
-</parameter>
-</method>
-<method name="visitScopeAnnotation"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="scopeAnnotation" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-</class>
-<class name="DefaultBindingTargetVisitor"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.BindingTargetVisitor">
-</implements>
-<constructor name="DefaultBindingTargetVisitor"
- type="com.google.inject.spi.DefaultBindingTargetVisitor"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="constructorBinding" type="com.google.inject.spi.ConstructorBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="convertedConstantBinding" type="com.google.inject.spi.ConvertedConstantBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="exposedBinding" type="com.google.inject.spi.ExposedBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instanceBinding" type="com.google.inject.spi.InstanceBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="linkedKeyBinding" type="com.google.inject.spi.LinkedKeyBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="providerBinding" type="com.google.inject.spi.ProviderBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="providerInstanceBinding" type="com.google.inject.spi.ProviderInstanceBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="providerKeyBinding" type="com.google.inject.spi.ProviderKeyBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="untargettedBinding" type="com.google.inject.spi.UntargettedBinding&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="visitOther"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="binding" type="com.google.inject.Binding&lt;? extends T&gt;">
-</parameter>
-</method>
-</class>
-<class name="DefaultElementVisitor"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.ElementVisitor">
-</implements>
-<constructor name="DefaultElementVisitor"
- type="com.google.inject.spi.DefaultElementVisitor"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.Binding&lt;T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="option" type="com.google.inject.spi.DisableCircularProxiesOption">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="injectionRequest" type="com.google.inject.spi.InjectionRequest&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="interceptorBinding" type="com.google.inject.spi.InterceptorBinding">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="lookup" type="com.google.inject.spi.MembersInjectorLookup&lt;T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="com.google.inject.spi.Message">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="privateElements" type="com.google.inject.spi.PrivateElements">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="providerLookup" type="com.google.inject.spi.ProviderLookup&lt;T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="option" type="com.google.inject.spi.RequireExplicitBindingsOption">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="scopeBinding" type="com.google.inject.spi.ScopeBinding">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="staticInjectionRequest" type="com.google.inject.spi.StaticInjectionRequest">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeConverterBinding" type="com.google.inject.spi.TypeConverterBinding">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.TypeListenerBinding">
-</parameter>
-</method>
-<method name="visitOther"
- return="V"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="protected"
->
-<parameter name="element" type="com.google.inject.spi.Element">
-</parameter>
-</method>
-</class>
-<class name="Dependency"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="forInjectionPoints"
- return="java.util.Set&lt;com.google.inject.spi.Dependency&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="injectionPoints" type="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;">
-</parameter>
-</method>
-<method name="get"
- return="com.google.inject.spi.Dependency&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="getInjectionPoint"
- return="com.google.inject.spi.InjectionPoint"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getKey"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getParameterIndex"
- return="int"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="isNullable"
- return="boolean"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="DisableCircularProxiesOption"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="Element"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="acceptVisitor"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="ElementVisitor"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.Binding&lt;T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="option" type="com.google.inject.spi.DisableCircularProxiesOption">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="request" type="com.google.inject.spi.InjectionRequest&lt;?&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.InterceptorBinding">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="lookup" type="com.google.inject.spi.MembersInjectorLookup&lt;T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="com.google.inject.spi.Message">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="elements" type="com.google.inject.spi.PrivateElements">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="lookup" type="com.google.inject.spi.ProviderLookup&lt;T&gt;">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="option" type="com.google.inject.spi.RequireExplicitBindingsOption">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.ScopeBinding">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="request" type="com.google.inject.spi.StaticInjectionRequest">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.TypeConverterBinding">
-</parameter>
-</method>
-<method name="visit"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binding" type="com.google.inject.spi.TypeListenerBinding">
-</parameter>
-</method>
-</interface>
-<class name="Elements"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="Elements"
- type="com.google.inject.spi.Elements"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="getElements"
- return="java.util.List&lt;com.google.inject.spi.Element&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="com.google.inject.Module...">
-</parameter>
-</method>
-<method name="getElements"
- return="java.util.List&lt;com.google.inject.spi.Element&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="stage" type="com.google.inject.Stage">
-</parameter>
-<parameter name="modules" type="com.google.inject.Module...">
-</parameter>
-</method>
-<method name="getElements"
- return="java.util.List&lt;com.google.inject.spi.Element&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="stage" type="com.google.inject.Stage">
-</parameter>
-<parameter name="modules" type="java.lang.Iterable&lt;? extends com.google.inject.Module&gt;">
-</parameter>
-</method>
-<method name="getElements"
- return="java.util.List&lt;com.google.inject.spi.Element&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="java.lang.Iterable&lt;? extends com.google.inject.Module&gt;">
-</parameter>
-</method>
-<method name="getModule"
- return="com.google.inject.Module"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="elements" type="java.lang.Iterable&lt;? extends com.google.inject.spi.Element&gt;">
-</parameter>
-</method>
-</class>
-<interface name="ExposedBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binding">
-</implements>
-<implements name="com.google.inject.spi.HasDependencies">
-</implements>
-<method name="applyTo"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getPrivateElements"
- return="com.google.inject.spi.PrivateElements"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="HasDependencies"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="getDependencies"
- return="java.util.Set&lt;com.google.inject.spi.Dependency&lt;?&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="InjectionListener"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="afterInjection"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="injectee" type="I">
-</parameter>
-</method>
-</interface>
-<class name="InjectionPoint"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="forConstructor"
- return="com.google.inject.spi.InjectionPoint"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="constructor" type="java.lang.reflect.Constructor&lt;T&gt;">
-</parameter>
-</method>
-<method name="forConstructor"
- return="com.google.inject.spi.InjectionPoint"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="constructor" type="java.lang.reflect.Constructor&lt;T&gt;">
-</parameter>
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;? extends T&gt;">
-</parameter>
-</method>
-<method name="forConstructorOf"
- return="com.google.inject.spi.InjectionPoint"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;?&gt;">
-</parameter>
-</method>
-<method name="forConstructorOf"
- return="com.google.inject.spi.InjectionPoint"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-<method name="forInstanceMethodsAndFields"
- return="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;?&gt;">
-</parameter>
-</method>
-<method name="forInstanceMethodsAndFields"
- return="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-<method name="forStaticMethodsAndFields"
- return="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;?&gt;">
-</parameter>
-</method>
-<method name="forStaticMethodsAndFields"
- return="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;?&gt;">
-</parameter>
-</method>
-<method name="getDeclaringType"
- return="com.google.inject.TypeLiteral&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getDependencies"
- return="java.util.List&lt;com.google.inject.spi.Dependency&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getMember"
- return="java.lang.reflect.Member"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="isOptional"
- return="boolean"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="isToolable"
- return="boolean"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="InjectionRequest"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<constructor name="InjectionRequest"
- type="com.google.inject.spi.InjectionRequest"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-<parameter name="instance" type="T">
-</parameter>
-</constructor>
-<method name="acceptVisitor"
- return="R"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;R&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getInjectionPoints"
- return="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<exception name="ConfigurationException" type="com.google.inject.ConfigurationException">
-</exception>
-</method>
-<method name="getInstance"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getType"
- return="com.google.inject.TypeLiteral&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="InstanceBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binding">
-</implements>
-<implements name="com.google.inject.spi.HasDependencies">
-</implements>
-<method name="getInjectionPoints"
- return="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getInstance"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="InterceptorBinding"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getClassMatcher"
- return="com.google.inject.matcher.Matcher&lt;? super java.lang.Class&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getInterceptors"
- return="java.util.List&lt;org.aopalliance.intercept.MethodInterceptor&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getMethodMatcher"
- return="com.google.inject.matcher.Matcher&lt;? super java.lang.reflect.Method&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="LinkedKeyBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binding">
-</implements>
-<method name="getLinkedKey"
- return="com.google.inject.Key&lt;? extends T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="MembersInjectorLookup"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<constructor name="MembersInjectorLookup"
- type="com.google.inject.spi.MembersInjectorLookup"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</constructor>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getDelegate"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getType"
- return="com.google.inject.TypeLiteral&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="initializeDelegate"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="delegate" type="com.google.inject.MembersInjector&lt;T&gt;">
-</parameter>
-</method>
-</class>
-<class name="Message"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<constructor name="Message"
- type="com.google.inject.spi.Message"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-<parameter name="message" type="java.lang.String">
-</parameter>
-</constructor>
-<constructor name="Message"
- type="com.google.inject.spi.Message"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="java.lang.String">
-</parameter>
-</constructor>
-<constructor name="Message"
- type="com.google.inject.spi.Message"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="sources" type="java.util.List&lt;java.lang.Object&gt;">
-</parameter>
-<parameter name="message" type="java.lang.String">
-</parameter>
-<parameter name="cause" type="java.lang.Throwable">
-</parameter>
-</constructor>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getCause"
- return="java.lang.Throwable"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getMessage"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSource"
- return="java.lang.String"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSources"
- return="java.util.List&lt;java.lang.Object&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="PrivateElements"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<method name="getElements"
- return="java.util.List&lt;com.google.inject.spi.Element&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getExposedKeys"
- return="java.util.Set&lt;com.google.inject.Key&lt;?&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getExposedSource"
- return="java.lang.Object"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;?&gt;">
-</parameter>
-</method>
-<method name="getInjector"
- return="com.google.inject.Injector"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="ProviderBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binding">
-</implements>
-<method name="getProvidedKey"
- return="com.google.inject.Key&lt;?&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="ProviderInstanceBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binding">
-</implements>
-<implements name="com.google.inject.spi.HasDependencies">
-</implements>
-<method name="getInjectionPoints"
- return="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getProviderInstance"
- return="com.google.inject.Provider&lt;? extends T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<interface name="ProviderKeyBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binding">
-</implements>
-<method name="getProviderKey"
- return="com.google.inject.Key&lt;? extends javax.inject.Provider&lt;? extends T&gt;&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="ProviderLookup"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<constructor name="ProviderLookup"
- type="com.google.inject.spi.ProviderLookup"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</constructor>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getDelegate"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getKey"
- return="com.google.inject.Key&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="initializeDelegate"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="delegate" type="com.google.inject.Provider&lt;T&gt;">
-</parameter>
-</method>
-</class>
-<interface name="ProviderWithDependencies"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.HasDependencies">
-</implements>
-<implements name="com.google.inject.Provider">
-</implements>
-</interface>
-<interface name="ProviderWithExtensionVisitor"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Provider">
-</implements>
-<method name="acceptExtensionVisitor"
- return="V"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.BindingTargetVisitor&lt;B, V&gt;">
-</parameter>
-<parameter name="binding" type="com.google.inject.spi.ProviderInstanceBinding&lt;? extends B&gt;">
-</parameter>
-</method>
-</interface>
-<class name="RequireExplicitBindingsOption"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="ScopeBinding"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getAnnotationType"
- return="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getScope"
- return="com.google.inject.Scope"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="StaticInjectionRequest"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getInjectionPoints"
- return="java.util.Set&lt;com.google.inject.spi.InjectionPoint&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<exception name="ConfigurationException" type="com.google.inject.ConfigurationException">
-</exception>
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getType"
- return="java.lang.Class&lt;?&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<class name="Toolable"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<interface name="TypeConverter"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="convert"
- return="java.lang.Object"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="value" type="java.lang.String">
-</parameter>
-<parameter name="toType" type="com.google.inject.TypeLiteral&lt;?&gt;">
-</parameter>
-</method>
-</interface>
-<class name="TypeConverterBinding"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<constructor name="TypeConverterBinding"
- type="com.google.inject.spi.TypeConverterBinding"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="source" type="java.lang.Object">
-</parameter>
-<parameter name="typeMatcher" type="com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;">
-</parameter>
-<parameter name="typeConverter" type="com.google.inject.spi.TypeConverter">
-</parameter>
-</constructor>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTypeConverter"
- return="com.google.inject.spi.TypeConverter"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTypeMatcher"
- return="com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="TypeEncounter"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="addError"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="com.google.inject.spi.Message">
-</parameter>
-</method>
-<method name="addError"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="message" type="java.lang.String">
-</parameter>
-<parameter name="arguments" type="java.lang.Object...">
-</parameter>
-</method>
-<method name="addError"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="t" type="java.lang.Throwable">
-</parameter>
-</method>
-<method name="bindInterceptor"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="methodMatcher" type="com.google.inject.matcher.Matcher&lt;? super java.lang.reflect.Method&gt;">
-</parameter>
-<parameter name="interceptors" type="org.aopalliance.intercept.MethodInterceptor...">
-</parameter>
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;">
-</parameter>
-</method>
-<method name="getMembersInjector"
- return="com.google.inject.MembersInjector&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="key" type="com.google.inject.Key&lt;T&gt;">
-</parameter>
-</method>
-<method name="getProvider"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-</method>
-<method name="register"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="membersInjector" type="com.google.inject.MembersInjector&lt;? super I&gt;">
-</parameter>
-</method>
-<method name="register"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="listener" type="com.google.inject.spi.InjectionListener&lt;? super I&gt;">
-</parameter>
-</method>
-</interface>
-<interface name="TypeListener"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="hear"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="com.google.inject.TypeLiteral&lt;I&gt;">
-</parameter>
-<parameter name="encounter" type="com.google.inject.spi.TypeEncounter&lt;I&gt;">
-</parameter>
-</method>
-</interface>
-<class name="TypeListenerBinding"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.spi.Element">
-</implements>
-<method name="acceptVisitor"
- return="T"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="visitor" type="com.google.inject.spi.ElementVisitor&lt;T&gt;">
-</parameter>
-</method>
-<method name="applyTo"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="getListener"
- return="com.google.inject.spi.TypeListener"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSource"
- return="java.lang.Object"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getTypeMatcher"
- return="com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</class>
-<interface name="UntargettedBinding"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="com.google.inject.Binding">
-</implements>
-</interface>
-</package>
-<package name="com.google.inject.spring"
->
-<class name="SpringIntegration"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="bindAll"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-<parameter name="beanFactory" type="ListableBeanFactory">
-</parameter>
-</method>
-<method name="fromSpring"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="type" type="java.lang.Class&lt;T&gt;">
-</parameter>
-<parameter name="name" type="java.lang.String">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.throwingproviders"
->
-<interface name="CheckedProvider"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="get"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<exception name="Exception" type="java.lang.Exception">
-</exception>
-</method>
-</interface>
-<class name="CheckedProvides"
- extends="java.lang.Object"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="java.lang.annotation.Annotation">
-</implements>
-</class>
-<interface name="ThrowingProvider"
- abstract="true"
- static="false"
- final="false"
- deprecated="deprecated"
- visibility="public"
->
-<implements name="com.google.inject.throwingproviders.CheckedProvider">
-</implements>
-<method name="get"
- return="T"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<exception name="Exception" type="java.lang.Exception">
-</exception>
-</method>
-</interface>
-<class name="ThrowingProviderBinder"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="bind"
- return="com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder&lt;P&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="interfaceType" type="java.lang.Class&lt;P&gt;">
-</parameter>
-<parameter name="valueType" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="create"
- return="com.google.inject.throwingproviders.ThrowingProviderBinder"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="binder" type="com.google.inject.Binder">
-</parameter>
-</method>
-<method name="forModule"
- return="com.google.inject.Module"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="module" type="com.google.inject.Module">
-</parameter>
-</method>
-</class>
-<class name="ThrowingProviderBinder.SecondaryBinder"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="ThrowingProviderBinder.SecondaryBinder"
- type="com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="interfaceType" type="java.lang.Class&lt;P&gt;">
-</parameter>
-<parameter name="valueType" type="java.lang.reflect.Type">
-</parameter>
-</constructor>
-<method name="annotatedWith"
- return="com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder&lt;P&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;">
-</parameter>
-</method>
-<method name="annotatedWith"
- return="com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder&lt;P&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="annotation" type="java.lang.annotation.Annotation">
-</parameter>
-</method>
-<method name="to"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="target" type="P">
-</parameter>
-</method>
-<method name="to"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="targetKey" type="com.google.inject.Key&lt;? extends P&gt;">
-</parameter>
-</method>
-<method name="to"
- return="com.google.inject.binder.ScopedBindingBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="targetType" type="java.lang.Class&lt;? extends P&gt;">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.tools.jmx"
->
-<interface name="ManagedBindingMBean"
- abstract="true"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="getKey"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getProvider"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="getSource"
- return="java.lang.String"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-</interface>
-<class name="Manager"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="Manager"
- type="com.google.inject.tools.jmx.Manager"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<method name="main"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="args" type="java.lang.String[]">
-</parameter>
-<exception name="Exception" type="java.lang.Exception">
-</exception>
-</method>
-<method name="manage"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="domain" type="java.lang.String">
-</parameter>
-<parameter name="injector" type="com.google.inject.Injector">
-</parameter>
-</method>
-<method name="manage"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="server" type="javax.management.MBeanServer">
-</parameter>
-<parameter name="domain" type="java.lang.String">
-</parameter>
-<parameter name="injector" type="com.google.inject.Injector">
-</parameter>
-</method>
-</class>
-</package>
-<package name="com.google.inject.util"
->
-<class name="Modules"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="combine"
- return="com.google.inject.Module"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="com.google.inject.Module...">
-</parameter>
-</method>
-<method name="combine"
- return="com.google.inject.Module"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="java.lang.Iterable&lt;? extends com.google.inject.Module&gt;">
-</parameter>
-</method>
-<method name="override"
- return="com.google.inject.util.Modules.OverriddenModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="com.google.inject.Module...">
-</parameter>
-</method>
-<method name="override"
- return="com.google.inject.util.Modules.OverriddenModuleBuilder"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="modules" type="java.lang.Iterable&lt;? extends com.google.inject.Module&gt;">
-</parameter>
-</method>
-<field name="EMPTY_MODULE"
- type="com.google.inject.Module"
- transient="false"
- volatile="false"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-</class>
-<interface name="Modules.OverriddenModuleBuilder"
- abstract="true"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="with"
- return="com.google.inject.Module"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="overrides" type="com.google.inject.Module...">
-</parameter>
-</method>
-<method name="with"
- return="com.google.inject.Module"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="overrides" type="java.lang.Iterable&lt;? extends com.google.inject.Module&gt;">
-</parameter>
-</method>
-</interface>
-<class name="Providers"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="guicify"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="provider" type="javax.inject.Provider&lt;T&gt;">
-</parameter>
-</method>
-<method name="of"
- return="com.google.inject.Provider&lt;T&gt;"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="instance" type="T">
-</parameter>
-</method>
-</class>
-<class name="Types"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-<method name="arrayOf"
- return="java.lang.reflect.GenericArrayType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="componentType" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="listOf"
- return="java.lang.reflect.ParameterizedType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="elementType" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="mapOf"
- return="java.lang.reflect.ParameterizedType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="keyType" type="java.lang.reflect.Type">
-</parameter>
-<parameter name="valueType" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="newParameterizedType"
- return="java.lang.reflect.ParameterizedType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="rawType" type="java.lang.reflect.Type">
-</parameter>
-<parameter name="typeArguments" type="java.lang.reflect.Type...">
-</parameter>
-</method>
-<method name="newParameterizedTypeWithOwner"
- return="java.lang.reflect.ParameterizedType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="ownerType" type="java.lang.reflect.Type">
-</parameter>
-<parameter name="rawType" type="java.lang.reflect.Type">
-</parameter>
-<parameter name="typeArguments" type="java.lang.reflect.Type...">
-</parameter>
-</method>
-<method name="providerOf"
- return="java.lang.reflect.ParameterizedType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="providedType" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="setOf"
- return="java.lang.reflect.ParameterizedType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="elementType" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="subtypeOf"
- return="java.lang.reflect.WildcardType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="bound" type="java.lang.reflect.Type">
-</parameter>
-</method>
-<method name="supertypeOf"
- return="java.lang.reflect.WildcardType"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="bound" type="java.lang.reflect.Type">
-</parameter>
-</method>
-</class>
-</package>
-</api>
diff --git a/latest-javadoc/hierarchy.html b/latest-javadoc/hierarchy.html
deleted file mode 100755
index 244a086..0000000
--- a/latest-javadoc/hierarchy.html
+++ /dev/null
@@ -1,1478 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<style>
-    .jd-hierarchy-spacer {
-        width: 15px;
-    }
-    .jd-hierarchy-data {
-        text-align: left;
-        vertical-align: top;
-    }
-</style>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="./favicon.ico" />
-<title>
-
-  Class Hierarchy
-
-
-| Guice
-
-</title>
-<link href="./../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="./../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="./../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("./", "./../javadoc/assets/");
-</script>
-<script src="./../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, './')"
-                      onkeyup="return search_changed(event, false, './')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="./packages.html"  >Package Index</a> | 
-                <a href="./classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-              <script>
-                /*addLoadEvent(maxPackageHeight);*/
-              </script>
-              <p style="padding:10px">Select a package to view its members</p><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="./packages.html"  >Package Index</a> | 
-            <a href="./classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("./");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="jd-header">
-<h1>Class Hierarchy</h1>
-</div>
-
-<div id="jd-content">
-
-<div style="margin-left: 20px; margin-right: 20px;">
-
-
-
-
-<table border="0" cellpadding="0" cellspacing="1">
-<th class="jd-hierarchy-data" colspan="4">Class</th>
-<th class="jd-hierarchy-data">Interfaces</th>
-
-
-<tr>
-    
-    <td class="jd-hierarchy-data" colspan="4">
-    
-        
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/AbstractModule.html">AbstractModule</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/Module.html">Module</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="2">
-    
-        <a href="./com/google/inject/grapher/GrapherModule.html">GrapherModule</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="2">
-    
-        <a href="./com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="2">
-    
-        <a href="./com/google/inject/persist/PersistModule.html">PersistModule</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="1">
-    
-        <a href="./com/google/inject/persist/jpa/JpaPersistModule.html">JpaPersistModule</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="2">
-    
-        <a href="./com/google/inject/servlet/ServletModule.html">ServletModule</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/Guice.html">Guice</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/Key.html">Key</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/PrivateModule.html">PrivateModule</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/Module.html">Module</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/Scopes.html">Scopes</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/TypeLiteral.html">TypeLiteral</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/Provider.html">Provider</a>
-         &nbsp;&nbsp;
-    
-        
-            <a href="./com/google/inject/spi/HasDependencies.html">HasDependencies</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/ShortNameFactory.html">ShortNameFactory</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/NameFactory.html">NameFactory</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/BindingEdge.html">BindingEdge</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/GraphvizNode.html">GraphvizNode</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>
-         &nbsp;&nbsp;
-    
-        
-            <a href="./com/google/inject/grapher/Renderer.html">Renderer</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/graphviz/PortIdFactory.html">PortIdFactory</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/jndi/JndiIntegration.html">JndiIntegration</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/matcher/AbstractMatcher.html">AbstractMatcher</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/matcher/Matcher.html">Matcher</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/matcher/Matchers.html">Matchers</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/multibindings/MapBinder.html">MapBinder</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/multibindings/Multibinder.html">Multibinder</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/name/Names.html">Names</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/persist/PersistFilter.html">PersistFilter</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/persist/finder/DynamicFinder.html">DynamicFinder</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/servlet/GuiceFilter.html">GuiceFilter</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/servlet/GuiceServletContextListener.html">GuiceServletContextListener</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/servlet/ServletScopes.html">ServletScopes</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/ElementVisitor.html">ElementVisitor</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/Dependency.html">Dependency</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/Elements.html">Elements</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/InjectionPoint.html">InjectionPoint</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/InjectionRequest.html">InjectionRequest</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/Message.html">Message</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-        
-            Serializable
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/ProviderLookup.html">ProviderLookup</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/ScopeBinding.html">ScopeBinding</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/Element.html">Element</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/spring/SpringIntegration.html">SpringIntegration</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/throwingproviders/ThrowingProviderBinder.html">ThrowingProviderBinder</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html">ThrowingProviderBinder.SecondaryBinder</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/tools/jmx/Manager.html">Manager</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/util/Modules.html">Modules</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/util/Providers.html">Providers</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/util/Types.html">Types</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-
-
-
-</table>
-
-</div>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div><!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
-
diff --git a/latest-javadoc/index.html b/latest-javadoc/index.html
deleted file mode 100755
index 7a610f3..0000000
--- a/latest-javadoc/index.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-<head>
-<meta http-equiv="refresh" content="0;url=packages.html">
-</head>
-<body>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/latest-javadoc/lists.js b/latest-javadoc/lists.js
deleted file mode 100755
index 399265b..0000000
--- a/latest-javadoc/lists.js
+++ /dev/null
@@ -1,187 +0,0 @@
-var DATA = [
-      { id:0, label:"com.google.inject", link:"com/google/inject/package-summary.html", type:"package" },
-      { id:1, label:"com.google.inject.AbstractModule", link:"com/google/inject/AbstractModule.html", type:"class" },
-      { id:2, label:"com.google.inject.Binder", link:"com/google/inject/Binder.html", type:"class" },
-      { id:3, label:"com.google.inject.Binding", link:"com/google/inject/Binding.html", type:"class" },
-      { id:4, label:"com.google.inject.BindingAnnotation", link:"com/google/inject/BindingAnnotation.html", type:"class" },
-      { id:5, label:"com.google.inject.ConfigurationException", link:"com/google/inject/ConfigurationException.html", type:"class" },
-      { id:6, label:"com.google.inject.CreationException", link:"com/google/inject/CreationException.html", type:"class" },
-      { id:7, label:"com.google.inject.Exposed", link:"com/google/inject/Exposed.html", type:"class" },
-      { id:8, label:"com.google.inject.Guice", link:"com/google/inject/Guice.html", type:"class" },
-      { id:9, label:"com.google.inject.ImplementedBy", link:"com/google/inject/ImplementedBy.html", type:"class" },
-      { id:10, label:"com.google.inject.Inject", link:"com/google/inject/Inject.html", type:"class" },
-      { id:11, label:"com.google.inject.Injector", link:"com/google/inject/Injector.html", type:"class" },
-      { id:12, label:"com.google.inject.Key", link:"com/google/inject/Key.html", type:"class" },
-      { id:13, label:"com.google.inject.MembersInjector", link:"com/google/inject/MembersInjector.html", type:"class" },
-      { id:14, label:"com.google.inject.Module", link:"com/google/inject/Module.html", type:"class" },
-      { id:15, label:"com.google.inject.OutOfScopeException", link:"com/google/inject/OutOfScopeException.html", type:"class" },
-      { id:16, label:"com.google.inject.PrivateBinder", link:"com/google/inject/PrivateBinder.html", type:"class" },
-      { id:17, label:"com.google.inject.PrivateModule", link:"com/google/inject/PrivateModule.html", type:"class" },
-      { id:18, label:"com.google.inject.ProvidedBy", link:"com/google/inject/ProvidedBy.html", type:"class" },
-      { id:19, label:"com.google.inject.Provider", link:"com/google/inject/Provider.html", type:"class" },
-      { id:20, label:"com.google.inject.Provides", link:"com/google/inject/Provides.html", type:"class" },
-      { id:21, label:"com.google.inject.ProvisionException", link:"com/google/inject/ProvisionException.html", type:"class" },
-      { id:22, label:"com.google.inject.Scope", link:"com/google/inject/Scope.html", type:"class" },
-      { id:23, label:"com.google.inject.ScopeAnnotation", link:"com/google/inject/ScopeAnnotation.html", type:"class" },
-      { id:24, label:"com.google.inject.Scopes", link:"com/google/inject/Scopes.html", type:"class" },
-      { id:25, label:"com.google.inject.Singleton", link:"com/google/inject/Singleton.html", type:"class" },
-      { id:26, label:"com.google.inject.Stage", link:"com/google/inject/Stage.html", type:"class" },
-      { id:27, label:"com.google.inject.TypeLiteral", link:"com/google/inject/TypeLiteral.html", type:"class" },
-      { id:28, label:"com.google.inject.assistedinject", link:"com/google/inject/assistedinject/package-summary.html", type:"package" },
-      { id:29, label:"com.google.inject.assistedinject.Assisted", link:"com/google/inject/assistedinject/Assisted.html", type:"class" },
-      { id:30, label:"com.google.inject.assistedinject.AssistedInject", link:"com/google/inject/assistedinject/AssistedInject.html", type:"class" },
-      { id:31, label:"com.google.inject.assistedinject.AssistedInjectBinding", link:"com/google/inject/assistedinject/AssistedInjectBinding.html", type:"class" },
-      { id:32, label:"com.google.inject.assistedinject.AssistedInjectTargetVisitor", link:"com/google/inject/assistedinject/AssistedInjectTargetVisitor.html", type:"class" },
-      { id:33, label:"com.google.inject.assistedinject.AssistedMethod", link:"com/google/inject/assistedinject/AssistedMethod.html", type:"class" },
-      { id:34, label:"com.google.inject.assistedinject.FactoryModuleBuilder", link:"com/google/inject/assistedinject/FactoryModuleBuilder.html", type:"class" },
-      { id:35, label:"com.google.inject.assistedinject.FactoryProvider", link:"com/google/inject/assistedinject/FactoryProvider.html", type:"class" },
-      { id:36, label:"com.google.inject.binder", link:"com/google/inject/binder/package-summary.html", type:"package" },
-      { id:37, label:"com.google.inject.binder.AnnotatedBindingBuilder", link:"com/google/inject/binder/AnnotatedBindingBuilder.html", type:"class" },
-      { id:38, label:"com.google.inject.binder.AnnotatedConstantBindingBuilder", link:"com/google/inject/binder/AnnotatedConstantBindingBuilder.html", type:"class" },
-      { id:39, label:"com.google.inject.binder.AnnotatedElementBuilder", link:"com/google/inject/binder/AnnotatedElementBuilder.html", type:"class" },
-      { id:40, label:"com.google.inject.binder.ConstantBindingBuilder", link:"com/google/inject/binder/ConstantBindingBuilder.html", type:"class" },
-      { id:41, label:"com.google.inject.binder.LinkedBindingBuilder", link:"com/google/inject/binder/LinkedBindingBuilder.html", type:"class" },
-      { id:42, label:"com.google.inject.binder.ScopedBindingBuilder", link:"com/google/inject/binder/ScopedBindingBuilder.html", type:"class" },
-      { id:43, label:"com.google.inject.grapher", link:"com/google/inject/grapher/package-summary.html", type:"package" },
-      { id:44, label:"com.google.inject.grapher.BindingEdge", link:"com/google/inject/grapher/BindingEdge.html", type:"class" },
-      { id:45, label:"com.google.inject.grapher.BindingEdge.Factory", link:"com/google/inject/grapher/BindingEdge.Factory.html", type:"class" },
-      { id:46, label:"com.google.inject.grapher.BindingEdge.Type", link:"com/google/inject/grapher/BindingEdge.Type.html", type:"class" },
-      { id:47, label:"com.google.inject.grapher.DependencyEdge", link:"com/google/inject/grapher/DependencyEdge.html", type:"class" },
-      { id:48, label:"com.google.inject.grapher.DependencyEdge.Factory", link:"com/google/inject/grapher/DependencyEdge.Factory.html", type:"class" },
-      { id:49, label:"com.google.inject.grapher.GrapherModule", link:"com/google/inject/grapher/GrapherModule.html", type:"class" },
-      { id:50, label:"com.google.inject.grapher.GraphingVisitor", link:"com/google/inject/grapher/GraphingVisitor.html", type:"class" },
-      { id:51, label:"com.google.inject.grapher.ImplementationNode", link:"com/google/inject/grapher/ImplementationNode.html", type:"class" },
-      { id:52, label:"com.google.inject.grapher.ImplementationNode.Factory", link:"com/google/inject/grapher/ImplementationNode.Factory.html", type:"class" },
-      { id:53, label:"com.google.inject.grapher.InjectorGrapher", link:"com/google/inject/grapher/InjectorGrapher.html", type:"class" },
-      { id:54, label:"com.google.inject.grapher.InterfaceNode", link:"com/google/inject/grapher/InterfaceNode.html", type:"class" },
-      { id:55, label:"com.google.inject.grapher.InterfaceNode.Factory", link:"com/google/inject/grapher/InterfaceNode.Factory.html", type:"class" },
-      { id:56, label:"com.google.inject.grapher.NameFactory", link:"com/google/inject/grapher/NameFactory.html", type:"class" },
-      { id:57, label:"com.google.inject.grapher.NodeAliasFactory", link:"com/google/inject/grapher/NodeAliasFactory.html", type:"class" },
-      { id:58, label:"com.google.inject.grapher.NodeIdFactory", link:"com/google/inject/grapher/NodeIdFactory.html", type:"class" },
-      { id:59, label:"com.google.inject.grapher.Renderer", link:"com/google/inject/grapher/Renderer.html", type:"class" },
-      { id:60, label:"com.google.inject.grapher.ShortNameFactory", link:"com/google/inject/grapher/ShortNameFactory.html", type:"class" },
-      { id:61, label:"com.google.inject.grapher.StringNodeIdFactory", link:"com/google/inject/grapher/StringNodeIdFactory.html", type:"class" },
-      { id:62, label:"com.google.inject.grapher.TransitiveDependencyVisitor", link:"com/google/inject/grapher/TransitiveDependencyVisitor.html", type:"class" },
-      { id:63, label:"com.google.inject.grapher.graphviz", link:"com/google/inject/grapher/graphviz/package-summary.html", type:"package" },
-      { id:64, label:"com.google.inject.grapher.graphviz.ArrowType", link:"com/google/inject/grapher/graphviz/ArrowType.html", type:"class" },
-      { id:65, label:"com.google.inject.grapher.graphviz.BindingEdgeFactory", link:"com/google/inject/grapher/graphviz/BindingEdgeFactory.html", type:"class" },
-      { id:66, label:"com.google.inject.grapher.graphviz.BindingEdgeFactory.GraphvizEdgeAdaptor", link:"com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html", type:"class" },
-      { id:67, label:"com.google.inject.grapher.graphviz.CompassPoint", link:"com/google/inject/grapher/graphviz/CompassPoint.html", type:"class" },
-      { id:68, label:"com.google.inject.grapher.graphviz.DependencyEdgeFactory", link:"com/google/inject/grapher/graphviz/DependencyEdgeFactory.html", type:"class" },
-      { id:69, label:"com.google.inject.grapher.graphviz.DependencyEdgeFactory.GraphvizEdgeAdaptor", link:"com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html", type:"class" },
-      { id:70, label:"com.google.inject.grapher.graphviz.EdgeStyle", link:"com/google/inject/grapher/graphviz/EdgeStyle.html", type:"class" },
-      { id:71, label:"com.google.inject.grapher.graphviz.GraphvizEdge", link:"com/google/inject/grapher/graphviz/GraphvizEdge.html", type:"class" },
-      { id:72, label:"com.google.inject.grapher.graphviz.GraphvizModule", link:"com/google/inject/grapher/graphviz/GraphvizModule.html", type:"class" },
-      { id:73, label:"com.google.inject.grapher.graphviz.GraphvizNode", link:"com/google/inject/grapher/graphviz/GraphvizNode.html", type:"class" },
-      { id:74, label:"com.google.inject.grapher.graphviz.GraphvizRenderer", link:"com/google/inject/grapher/graphviz/GraphvizRenderer.html", type:"class" },
-      { id:75, label:"com.google.inject.grapher.graphviz.ImplementationNodeFactory", link:"com/google/inject/grapher/graphviz/ImplementationNodeFactory.html", type:"class" },
-      { id:76, label:"com.google.inject.grapher.graphviz.ImplementationNodeFactory.GraphvizNodeAdaptor", link:"com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html", type:"class" },
-      { id:77, label:"com.google.inject.grapher.graphviz.InterfaceNodeFactory", link:"com/google/inject/grapher/graphviz/InterfaceNodeFactory.html", type:"class" },
-      { id:78, label:"com.google.inject.grapher.graphviz.InterfaceNodeFactory.GraphvizNodeAdaptor", link:"com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html", type:"class" },
-      { id:79, label:"com.google.inject.grapher.graphviz.NodeShape", link:"com/google/inject/grapher/graphviz/NodeShape.html", type:"class" },
-      { id:80, label:"com.google.inject.grapher.graphviz.NodeStyle", link:"com/google/inject/grapher/graphviz/NodeStyle.html", type:"class" },
-      { id:81, label:"com.google.inject.grapher.graphviz.PortIdFactory", link:"com/google/inject/grapher/graphviz/PortIdFactory.html", type:"class" },
-      { id:82, label:"com.google.inject.grapher.graphviz.PortIdFactoryImpl", link:"com/google/inject/grapher/graphviz/PortIdFactoryImpl.html", type:"class" },
-      { id:83, label:"com.google.inject.jndi", link:"com/google/inject/jndi/package-summary.html", type:"package" },
-      { id:84, label:"com.google.inject.jndi.JndiIntegration", link:"com/google/inject/jndi/JndiIntegration.html", type:"class" },
-      { id:85, label:"com.google.inject.matcher", link:"com/google/inject/matcher/package-summary.html", type:"package" },
-      { id:86, label:"com.google.inject.matcher.AbstractMatcher", link:"com/google/inject/matcher/AbstractMatcher.html", type:"class" },
-      { id:87, label:"com.google.inject.matcher.Matcher", link:"com/google/inject/matcher/Matcher.html", type:"class" },
-      { id:88, label:"com.google.inject.matcher.Matchers", link:"com/google/inject/matcher/Matchers.html", type:"class" },
-      { id:89, label:"com.google.inject.multibindings", link:"com/google/inject/multibindings/package-summary.html", type:"package" },
-      { id:90, label:"com.google.inject.multibindings.MapBinder", link:"com/google/inject/multibindings/MapBinder.html", type:"class" },
-      { id:91, label:"com.google.inject.multibindings.MapBinderBinding", link:"com/google/inject/multibindings/MapBinderBinding.html", type:"class" },
-      { id:92, label:"com.google.inject.multibindings.Multibinder", link:"com/google/inject/multibindings/Multibinder.html", type:"class" },
-      { id:93, label:"com.google.inject.multibindings.MultibinderBinding", link:"com/google/inject/multibindings/MultibinderBinding.html", type:"class" },
-      { id:94, label:"com.google.inject.multibindings.MultibindingsTargetVisitor", link:"com/google/inject/multibindings/MultibindingsTargetVisitor.html", type:"class" },
-      { id:95, label:"com.google.inject.name", link:"com/google/inject/name/package-summary.html", type:"package" },
-      { id:96, label:"com.google.inject.name.Named", link:"com/google/inject/name/Named.html", type:"class" },
-      { id:97, label:"com.google.inject.name.Names", link:"com/google/inject/name/Names.html", type:"class" },
-      { id:98, label:"com.google.inject.persist", link:"com/google/inject/persist/package-summary.html", type:"package" },
-      { id:99, label:"com.google.inject.persist.PersistFilter", link:"com/google/inject/persist/PersistFilter.html", type:"class" },
-      { id:100, label:"com.google.inject.persist.PersistModule", link:"com/google/inject/persist/PersistModule.html", type:"class" },
-      { id:101, label:"com.google.inject.persist.PersistService", link:"com/google/inject/persist/PersistService.html", type:"class" },
-      { id:102, label:"com.google.inject.persist.Transactional", link:"com/google/inject/persist/Transactional.html", type:"class" },
-      { id:103, label:"com.google.inject.persist.UnitOfWork", link:"com/google/inject/persist/UnitOfWork.html", type:"class" },
-      { id:104, label:"com.google.inject.persist.finder", link:"com/google/inject/persist/finder/package-summary.html", type:"package" },
-      { id:105, label:"com.google.inject.persist.finder.DynamicFinder", link:"com/google/inject/persist/finder/DynamicFinder.html", type:"class" },
-      { id:106, label:"com.google.inject.persist.finder.Finder", link:"com/google/inject/persist/finder/Finder.html", type:"class" },
-      { id:107, label:"com.google.inject.persist.finder.FirstResult", link:"com/google/inject/persist/finder/FirstResult.html", type:"class" },
-      { id:108, label:"com.google.inject.persist.finder.MaxResults", link:"com/google/inject/persist/finder/MaxResults.html", type:"class" },
-      { id:109, label:"com.google.inject.persist.jpa", link:"com/google/inject/persist/jpa/package-summary.html", type:"package" },
-      { id:110, label:"com.google.inject.persist.jpa.JpaPersistModule", link:"com/google/inject/persist/jpa/JpaPersistModule.html", type:"class" },
-      { id:111, label:"com.google.inject.servlet", link:"com/google/inject/servlet/package-summary.html", type:"package" },
-      { id:112, label:"com.google.inject.servlet.GuiceFilter", link:"com/google/inject/servlet/GuiceFilter.html", type:"class" },
-      { id:113, label:"com.google.inject.servlet.GuiceServletContextListener", link:"com/google/inject/servlet/GuiceServletContextListener.html", type:"class" },
-      { id:114, label:"com.google.inject.servlet.InstanceFilterBinding", link:"com/google/inject/servlet/InstanceFilterBinding.html", type:"class" },
-      { id:115, label:"com.google.inject.servlet.InstanceServletBinding", link:"com/google/inject/servlet/InstanceServletBinding.html", type:"class" },
-      { id:116, label:"com.google.inject.servlet.LinkedFilterBinding", link:"com/google/inject/servlet/LinkedFilterBinding.html", type:"class" },
-      { id:117, label:"com.google.inject.servlet.LinkedServletBinding", link:"com/google/inject/servlet/LinkedServletBinding.html", type:"class" },
-      { id:118, label:"com.google.inject.servlet.RequestParameters", link:"com/google/inject/servlet/RequestParameters.html", type:"class" },
-      { id:119, label:"com.google.inject.servlet.RequestScoped", link:"com/google/inject/servlet/RequestScoped.html", type:"class" },
-      { id:120, label:"com.google.inject.servlet.ServletModule", link:"com/google/inject/servlet/ServletModule.html", type:"class" },
-      { id:121, label:"com.google.inject.servlet.ServletModule.FilterKeyBindingBuilder", link:"com/google/inject/servlet/ServletModule.FilterKeyBindingBuilder.html", type:"class" },
-      { id:122, label:"com.google.inject.servlet.ServletModule.ServletKeyBindingBuilder", link:"com/google/inject/servlet/ServletModule.ServletKeyBindingBuilder.html", type:"class" },
-      { id:123, label:"com.google.inject.servlet.ServletModuleBinding", link:"com/google/inject/servlet/ServletModuleBinding.html", type:"class" },
-      { id:124, label:"com.google.inject.servlet.ServletModuleTargetVisitor", link:"com/google/inject/servlet/ServletModuleTargetVisitor.html", type:"class" },
-      { id:125, label:"com.google.inject.servlet.ServletScopes", link:"com/google/inject/servlet/ServletScopes.html", type:"class" },
-      { id:126, label:"com.google.inject.servlet.SessionScoped", link:"com/google/inject/servlet/SessionScoped.html", type:"class" },
-      { id:127, label:"com.google.inject.servlet.UriPatternType", link:"com/google/inject/servlet/UriPatternType.html", type:"class" },
-      { id:128, label:"com.google.inject.spi", link:"com/google/inject/spi/package-summary.html", type:"package" },
-      { id:129, label:"com.google.inject.spi.BindingScopingVisitor", link:"com/google/inject/spi/BindingScopingVisitor.html", type:"class" },
-      { id:130, label:"com.google.inject.spi.BindingTargetVisitor", link:"com/google/inject/spi/BindingTargetVisitor.html", type:"class" },
-      { id:131, label:"com.google.inject.spi.ConstructorBinding", link:"com/google/inject/spi/ConstructorBinding.html", type:"class" },
-      { id:132, label:"com.google.inject.spi.ConvertedConstantBinding", link:"com/google/inject/spi/ConvertedConstantBinding.html", type:"class" },
-      { id:133, label:"com.google.inject.spi.DefaultBindingScopingVisitor", link:"com/google/inject/spi/DefaultBindingScopingVisitor.html", type:"class" },
-      { id:134, label:"com.google.inject.spi.DefaultBindingTargetVisitor", link:"com/google/inject/spi/DefaultBindingTargetVisitor.html", type:"class" },
-      { id:135, label:"com.google.inject.spi.DefaultElementVisitor", link:"com/google/inject/spi/DefaultElementVisitor.html", type:"class" },
-      { id:136, label:"com.google.inject.spi.Dependency", link:"com/google/inject/spi/Dependency.html", type:"class" },
-      { id:137, label:"com.google.inject.spi.DisableCircularProxiesOption", link:"com/google/inject/spi/DisableCircularProxiesOption.html", type:"class" },
-      { id:138, label:"com.google.inject.spi.Element", link:"com/google/inject/spi/Element.html", type:"class" },
-      { id:139, label:"com.google.inject.spi.ElementVisitor", link:"com/google/inject/spi/ElementVisitor.html", type:"class" },
-      { id:140, label:"com.google.inject.spi.Elements", link:"com/google/inject/spi/Elements.html", type:"class" },
-      { id:141, label:"com.google.inject.spi.ExposedBinding", link:"com/google/inject/spi/ExposedBinding.html", type:"class" },
-      { id:142, label:"com.google.inject.spi.HasDependencies", link:"com/google/inject/spi/HasDependencies.html", type:"class" },
-      { id:143, label:"com.google.inject.spi.InjectionListener", link:"com/google/inject/spi/InjectionListener.html", type:"class" },
-      { id:144, label:"com.google.inject.spi.InjectionPoint", link:"com/google/inject/spi/InjectionPoint.html", type:"class" },
-      { id:145, label:"com.google.inject.spi.InjectionRequest", link:"com/google/inject/spi/InjectionRequest.html", type:"class" },
-      { id:146, label:"com.google.inject.spi.InstanceBinding", link:"com/google/inject/spi/InstanceBinding.html", type:"class" },
-      { id:147, label:"com.google.inject.spi.InterceptorBinding", link:"com/google/inject/spi/InterceptorBinding.html", type:"class" },
-      { id:148, label:"com.google.inject.spi.LinkedKeyBinding", link:"com/google/inject/spi/LinkedKeyBinding.html", type:"class" },
-      { id:149, label:"com.google.inject.spi.MembersInjectorLookup", link:"com/google/inject/spi/MembersInjectorLookup.html", type:"class" },
-      { id:150, label:"com.google.inject.spi.Message", link:"com/google/inject/spi/Message.html", type:"class" },
-      { id:151, label:"com.google.inject.spi.PrivateElements", link:"com/google/inject/spi/PrivateElements.html", type:"class" },
-      { id:152, label:"com.google.inject.spi.ProviderBinding", link:"com/google/inject/spi/ProviderBinding.html", type:"class" },
-      { id:153, label:"com.google.inject.spi.ProviderInstanceBinding", link:"com/google/inject/spi/ProviderInstanceBinding.html", type:"class" },
-      { id:154, label:"com.google.inject.spi.ProviderKeyBinding", link:"com/google/inject/spi/ProviderKeyBinding.html", type:"class" },
-      { id:155, label:"com.google.inject.spi.ProviderLookup", link:"com/google/inject/spi/ProviderLookup.html", type:"class" },
-      { id:156, label:"com.google.inject.spi.ProviderWithDependencies", link:"com/google/inject/spi/ProviderWithDependencies.html", type:"class" },
-      { id:157, label:"com.google.inject.spi.ProviderWithExtensionVisitor", link:"com/google/inject/spi/ProviderWithExtensionVisitor.html", type:"class" },
-      { id:158, label:"com.google.inject.spi.RequireExplicitBindingsOption", link:"com/google/inject/spi/RequireExplicitBindingsOption.html", type:"class" },
-      { id:159, label:"com.google.inject.spi.ScopeBinding", link:"com/google/inject/spi/ScopeBinding.html", type:"class" },
-      { id:160, label:"com.google.inject.spi.StaticInjectionRequest", link:"com/google/inject/spi/StaticInjectionRequest.html", type:"class" },
-      { id:161, label:"com.google.inject.spi.Toolable", link:"com/google/inject/spi/Toolable.html", type:"class" },
-      { id:162, label:"com.google.inject.spi.TypeConverter", link:"com/google/inject/spi/TypeConverter.html", type:"class" },
-      { id:163, label:"com.google.inject.spi.TypeConverterBinding", link:"com/google/inject/spi/TypeConverterBinding.html", type:"class" },
-      { id:164, label:"com.google.inject.spi.TypeEncounter", link:"com/google/inject/spi/TypeEncounter.html", type:"class" },
-      { id:165, label:"com.google.inject.spi.TypeListener", link:"com/google/inject/spi/TypeListener.html", type:"class" },
-      { id:166, label:"com.google.inject.spi.TypeListenerBinding", link:"com/google/inject/spi/TypeListenerBinding.html", type:"class" },
-      { id:167, label:"com.google.inject.spi.UntargettedBinding", link:"com/google/inject/spi/UntargettedBinding.html", type:"class" },
-      { id:168, label:"com.google.inject.spring", link:"com/google/inject/spring/package-summary.html", type:"package" },
-      { id:169, label:"com.google.inject.spring.SpringIntegration", link:"com/google/inject/spring/SpringIntegration.html", type:"class" },
-      { id:170, label:"com.google.inject.throwingproviders", link:"com/google/inject/throwingproviders/package-summary.html", type:"package" },
-      { id:171, label:"com.google.inject.throwingproviders.CheckedProvider", link:"com/google/inject/throwingproviders/CheckedProvider.html", type:"class" },
-      { id:172, label:"com.google.inject.throwingproviders.CheckedProvides", link:"com/google/inject/throwingproviders/CheckedProvides.html", type:"class" },
-      { id:173, label:"com.google.inject.throwingproviders.ThrowingProvider", link:"com/google/inject/throwingproviders/ThrowingProvider.html", type:"class" },
-      { id:174, label:"com.google.inject.throwingproviders.ThrowingProviderBinder", link:"com/google/inject/throwingproviders/ThrowingProviderBinder.html", type:"class" },
-      { id:175, label:"com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder", link:"com/google/inject/throwingproviders/ThrowingProviderBinder.SecondaryBinder.html", type:"class" },
-      { id:176, label:"com.google.inject.tools.jmx", link:"com/google/inject/tools/jmx/package-summary.html", type:"package" },
-      { id:177, label:"com.google.inject.tools.jmx.ManagedBindingMBean", link:"com/google/inject/tools/jmx/ManagedBindingMBean.html", type:"class" },
-      { id:178, label:"com.google.inject.tools.jmx.Manager", link:"com/google/inject/tools/jmx/Manager.html", type:"class" },
-      { id:179, label:"com.google.inject.util", link:"com/google/inject/util/package-summary.html", type:"package" },
-      { id:180, label:"com.google.inject.util.Modules", link:"com/google/inject/util/Modules.html", type:"class" },
-      { id:181, label:"com.google.inject.util.Modules.OverriddenModuleBuilder", link:"com/google/inject/util/Modules.OverriddenModuleBuilder.html", type:"class" },
-      { id:182, label:"com.google.inject.util.Providers", link:"com/google/inject/util/Providers.html", type:"class" },
-      { id:183, label:"com.google.inject.util.Types", link:"com/google/inject/util/Types.html", type:"class" }
-
-    ];
diff --git a/latest-javadoc/package-list b/latest-javadoc/package-list
deleted file mode 100755
index c7ae018..0000000
--- a/latest-javadoc/package-list
+++ /dev/null
@@ -1,19 +0,0 @@
-com.google.inject
-com.google.inject.assistedinject
-com.google.inject.binder
-com.google.inject.grapher
-com.google.inject.grapher.graphviz
-com.google.inject.jndi
-com.google.inject.matcher
-com.google.inject.multibindings
-com.google.inject.name
-com.google.inject.persist
-com.google.inject.persist.finder
-com.google.inject.persist.jpa
-com.google.inject.servlet
-com.google.inject.spi
-com.google.inject.spring
-com.google.inject.throwingproviders
-com.google.inject.tools.jmx
-com.google.inject.util
-
diff --git a/latest-javadoc/packages.html b/latest-javadoc/packages.html
deleted file mode 100755
index 8f0b543..0000000
--- a/latest-javadoc/packages.html
+++ /dev/null
@@ -1,397 +0,0 @@
-<!DOCTYPE html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<link rel="shortcut icon" type="image/x-icon" href="./favicon.ico" />
-<title>
-
-  Package Index
-
-
-| Guice
-
-</title>
-<link href="./../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="./../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
-<script src="./../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/prettify.js" type="text/javascript"></script>
-<script type="text/javascript">
-  setToRoot("./", "./../javadoc/assets/");
-</script>
-<script src="./../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/navtree_data.js" type="text/javascript"></script>
-<script src="./../javadoc/assets/customizations.js" type="text/javascript"></script>
-<noscript>
-  <style type="text/css">
-    html,body{overflow:auto;}
-    #body-content{position:relative; top:0;}
-    #doc-content{overflow:visible;border-left:3px solid #666;}
-    #side-nav{padding:0;}
-    #side-nav .toggle-list ul {display:block;}
-    #resize-packages-nav{border-bottom:3px solid #666;}
-  </style>
-</noscript>
-</head>
-
-<body class="gc-documentation">
-
-<div id="header">
-    <div id="headerLeft">
-    
-      <span id="masthead-title">Guice</span>
-    
-    </div>
-    <div id="headerRight">
-      
-  <div id="search" >
-      <div id="searchForm">
-          <form accept-charset="utf-8" class="gsc-search-box" 
-                onsubmit="return submit_search()">
-            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-                <tr>
-                  <td class="gsc-input">
-                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
-                      title="search developer docs" name="q"
-                      value="search developer docs"
-                      onFocus="search_focus_changed(this, true)"
-                      onBlur="search_focus_changed(this, false)"
-                      onkeydown="return search_changed(event, true, './')"
-                      onkeyup="return search_changed(event, false, './')" />
-                  <div id="search_filtered_div" class="no-display">
-                      <table id="search_filtered" cellspacing=0>
-                      </table>
-                  </div>
-                  </td>
-                  <td class="gsc-search-button">
-                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                  </td>
-                  <td class="gsc-clear-button">
-                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                  </td>
-                </tr></tbody>
-              </table>
-          </form>
-      </div><!-- searchForm -->
-  </div><!-- search -->
-      
-        
-  <div id="api-level-toggle">
-    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
-    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
-    <select id="apiLevelSelector">
-      <!-- option elements added by buildApiLevelSelector() -->
-    </select>
-  </div>
-  <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
-    buildApiLevelSelector();
-    addLoadEvent(changeApiLevel);
-  </script>
-
-
-      
-    </div>
-</div><!-- header -->
-
-
-  <div class="g-section g-tpl-240" id="body-content">
-    <div class="g-unit g-first side-nav-resizable" id="side-nav">
-      <div id="swapper">
-        <div id="nav-panels">
-          <div id="resize-packages-nav">
-            <div id="packages-nav">
-              <div id="index-links"><nobr>
-                <a href="./packages.html" class="selected" >Package Index</a> | 
-                <a href="./classes.html" >Class Index</a></nobr>
-              </div>
-              <ul>
-                
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/package-summary.html">com.google.inject</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
-    <li class="api apilevel-Guice_3.0">
-  <a href="./com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
-    <li class="api apilevel-Guice_1.0">
-  <a href="./com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
-    <li class="api apilevel-Guice_2.0">
-  <a href="./com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
-              </ul><br/>
-            </div> <!-- end packages -->
-          </div> <!-- end resize-packages -->
-          <div id="classes-nav">
-              <script>
-                /*addLoadEvent(maxPackageHeight);*/
-              </script>
-              <p style="padding:10px">Select a package to view its members</p><br/>
-          </div><!-- end classes -->
-        </div><!-- end nav-panels -->
-        <div id="nav-tree" style="display:none">
-          <div id="index-links"><nobr>
-            <a href="./packages.html" class="selected" >Package Index</a> | 
-            <a href="./classes.html" >Class Index</a></nobr>
-          </div>
-        </div><!-- end nav-tree -->
-      </div><!-- end swapper -->
-    </div> <!-- end side-nav -->
-    <script>
-      if (!isMobile) {
-        $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-        chooseDefaultNav();
-        if ($("#nav-tree").is(':visible')) {
-          init_default_navtree("./");
-        } else {
-          addLoadEvent(function() {
-            scrollIntoView("packages-nav");
-            scrollIntoView("classes-nav");
-          });
-        }
-        $("#swapper").css({borderBottom:"2px solid #aaa"});
-      } else {
-        swapNav(); // tree view should be used on mobile
-      }
-    </script>
-
-
-
-<div class="g-unit" id="doc-content">
-
-<div id="jd-header">
-<h1>Package Index</h1>
-</div>
-
-<div id="jd-content">
-
-<div class="jd-descr">
-<p></p>
-</div>
-
-
-<table class="jd-sumtable">
-
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/package-summary.html">com.google.inject</a></td>
-        <td class="jd-descrcol" width="100%"><i>Google Guice</i> (pronounced "juice") is an ultra-lightweight dependency
- injection framework.&nbsp;</td>
-    </tr>
-
-
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></td>
-        <td class="jd-descrcol" width="100%">Extension for combining factory interfaces with injection; this extension requires <code>guice-assistedinject-3.0.jar</code>.&nbsp;</td>
-    </tr>
-
-
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/binder/package-summary.html">com.google.inject.binder</a></td>
-        <td class="jd-descrcol" width="100%">Interfaces which make up <code><a href="./com/google/inject/Binder.html">Binder</a></code>'s
- expression language.&nbsp;</td>
-    </tr>
-
-
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-
-
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></td>
-        <td class="jd-descrcol" width="100%">&nbsp;</td>
-    </tr>
-
-
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></td>
-        <td class="jd-descrcol" width="100%">JNDI integration; this extension requires <code>guice-jndi-3.0.jar</code>.&nbsp;</td>
-    </tr>
-
-
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></td>
-        <td class="jd-descrcol" width="100%">Used for matching things.&nbsp;</td>
-    </tr>
-
-
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></td>
-        <td class="jd-descrcol" width="100%">Extension for binding multiple instances in a collection; this extension requires <code>guice-multibindings-3.0.jar</code>.&nbsp;</td>
-    </tr>
-
-
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/name/package-summary.html">com.google.inject.name</a></td>
-        <td class="jd-descrcol" width="100%">Support for binding to string-based names.&nbsp;</td>
-    </tr>
-
-
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/persist/package-summary.html">com.google.inject.persist</a></td>
-        <td class="jd-descrcol" width="100%">Guice Persist: a lightweight persistence library for Guice; this extension requires <code>guice-persist-3.0.jar</code>.&nbsp;</td>
-    </tr>
-
-
-    <tr class="alt-color api apilevel-Guice_3.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></td>
-        <td class="jd-descrcol" width="100%">Dynamic Finder API for Guice Persist.&nbsp;</td>
-    </tr>
-
-
-    <tr class=" api apilevel-Guice_3.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></td>
-        <td class="jd-descrcol" width="100%">guice-persist's Java Persistence API (JPA) support.&nbsp;</td>
-    </tr>
-
-
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></td>
-        <td class="jd-descrcol" width="100%">Servlet API scopes, bindings and registration; this extension requires <code>guice-servlet-3.0.jar</code>.&nbsp;</td>
-    </tr>
-
-
-    <tr class=" api apilevel-Guice_1.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/spi/package-summary.html">com.google.inject.spi</a></td>
-        <td class="jd-descrcol" width="100%">Guice service provider interface
-&nbsp;</td>
-    </tr>
-
-
-    <tr class="alt-color api apilevel-Guice_2.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/spring/package-summary.html">com.google.inject.spring</a></td>
-        <td class="jd-descrcol" width="100%">Spring integration; this extension requires <code>guice-spring-3.0.jar</code>.&nbsp;</td>
-    </tr>
-
-
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></td>
-        <td class="jd-descrcol" width="100%">Extension for injecting objects that may throw at provision time; this extension requires <code>guice-throwingproviders-3.0.jar</code>.&nbsp;</td>
-    </tr>
-
-
-    <tr class="alt-color api apilevel-Guice_1.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></td>
-        <td class="jd-descrcol" width="100%">JMX integration; this extension requires <code>guice-jmx-3.0.jar</code>.&nbsp;</td>
-    </tr>
-
-
-    <tr class=" api apilevel-Guice_2.0" >
-        <td class="jd-linkcol">
-  <a href="./com/google/inject/util/package-summary.html">com.google.inject.util</a></td>
-        <td class="jd-descrcol" width="100%">Helper methods for working with Guice.&nbsp;</td>
-    </tr>
-
-
-</table>
-
-<div id="footer">
-Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
-</div> <!-- end footer -->
-
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-</div> <!-- end body-content --> 
-
-<script type="text/javascript">
-init(); /* initialize android-developer-docs.js */
-</script>
-
-</body>
-</html>
